「覚え間違い」を教えてください!

お世話になります
Sikulix2.0.5(Jython2.7.3)でcsvを読み込んで
WEBの検索条件にpasteして[検索]することをやりたいのですが
csvを読み込んでWEBの検索条件にpasteで文字化けします
csvをs-jisやutf-8などいろいろ格納し直してやってみてもそれぞれ違った化け方をする状態です
解決の方法をご教示ください

import sys
reload(sys)
sys.setdefaultencoding('utf-8')
csvfile = "c:\\temp\\companymasterlist-UTF8wBOM.csv"
f = open(csvfile,'rb')
reader = csv.reader(f)
header = next(reader)
namelist = []

for row in reader:
namelist.append(row[1])

paste(namelist[0])

A 回答 (1件)

文字化けが発生する原因は、CSVファイルのエンコーディングとSikulixのエンコーディングが異なるためです。

SikulixはデフォルトでUTF-8エンコーディングを使用していますが、CSVファイルのエンコーディングは異なる可能性があります。

以下のコードを使用して、CSVファイルを正しくエンコードして読み込むことができます。

python
Copy code
import codecs
import csv

csvfile = "c:\\temp\\companymasterlist-UTF8wBOM.csv"

with codecs.open(csvfile, 'r', 'Shift_JIS') as f:
reader = csv.reader(f)
header = next(reader)
namelist = []

for row in reader:
namelist.append(row[1].decode('Shift_JIS'))

paste(namelist[0].encode('utf-8'))

上記のコードでは、'codecsモジュールを使用して、CSVファイルをShift_JISエンコーディングで開き、'csv.readercsv.readerを使用してファイルを読み込みます。次に、'デコードdecodeを使用してShift_JISエンコーディングの文字列をUnicodeに変換して、'encodeencodeを使用してUTF-8エンコーディングの文字列に変換します。最後に、pasteを使用して検索条件にペーストします。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報