2017-10-28 13 views
0

私はvar unicodeをpythonのscrapyから取得しました。これをmysqlに保存しました。私はアラビア語のUnicodeをPythonのmysqlのstroeの文字列に変換し、luaのデータを読み込みます

db = MySQLdb.connect(host="", 
        user="", 
        passwd="", 
        db="", 
        cursorclass=MySQLdb.cursors.DictCursor, 
        charset='utf8', 
        init_command='SET NAMES UTF8' 
        ) 

のpythonファイルにこの接続にDBへこのように utf-8にエンコードし、文字列に私のユニコードに変換するために

unicode.encode('utf-8')

や店舗をウェブでの方法のすべてを試した後、私はデータを読みますこのコードでluaのmysqlから

local env = assert (luasql.mysql()) 
local con = assert (env:connect("","","")) 
local cursor,errorString = assert (con:execute("SELECT `id`,`arabic_name`,`arabic_lastname` FROM `user_info`")) 
local row = cursor:fetch ({}, "a") 

whileループの結果を印刷すると、返す私????文字列のタイプ 私はこの方法をPythonで試してみましたが、????,ですが、正しいタイプの文字列を持つ列はphpmyadminにあります。 ルアとmysqlのmysqlライブラリが正しいタイプのアラビア語文字列を返すことはできません。

誰もがこの問題と問題を解決する方法を知っていますか?ストアデータまたはリードデータで!

+0

あなたはこれをpythonまたはluaでやりたいですか? – gommb

+0

私はluaの読み込み記録が必要です。pythonはこのプロジェクトでの読み込みのための書き込みとluaです。私はmysqlテーブルとコレクションをutf8_general_ciに設定しました –

+0

[utf8形式のluasqlからデータを読み込む]可能な複製(https://stackoverflow.com/questions/46966247/read-data-from-luasql-with-utf8-format) – tarleb

答えて

0

クライアントバイトがCP1256にエンコードされていると宣言するために、SET NAMES cp1256を試しましたか?

テーブルのは、utf8またはcp1256のいずれかであるとトランスコーディングはINSERTSELECT中にMySQLが行われることになります。

関連する問題