Windows7のコマンドラインで次のスクリプトを実行しようとしています。デフォルトの文字エンコーディングはasciiです。私がスクリプトを実行しようとすると、 "Kéremadja meg a kimenetelnevezését!"の代わりに何か変わったものがあります。raw_inputでの文字エンコードPython 2.7
pythonファイルのエンコーディングはUTF-8です。私は成功なしで問題を解決するためにいくつかの方法を試しました。私は間違って何をしています。 Macでは全く問題はありません。
#! /Applications/MAMP/Library/bin/python2.7
# -*- coding: utf-8 -*-
import sys
import difflib
from sys import argv
import re
import fileinput
import webbrowser
script, filename1, filename2 = argv
# Itt kezdjük el a szövegek összehasonlítását
compare = open(filename1, 'r').read()
compare_lines = str(compare).splitlines()
compare2 = open(filename2, 'r').read()
compare_lines2 = str(compare2).splitlines()
d = difflib.HtmlDiff()
kulonbseg = d.make_file(compare_lines, compare_lines2)
kulonbsegek = raw_input("Kérem adja meg a kimenet elnevezését! >")
file = open(kulonbsegek, 'w')
file.write(str(kulonbseg))
file.close()
for line in fileinput.FileInput(kulonbsegek ,inplace=1):
line = line.replace("ISO-8859-1", "UTF-8")
print line
new = 2
url = kulonbsegek
chrome_path = 'open -a /Applications/Google\ Chrome.app %s'
# Windows
# chrome_path = 'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe %s'
webbrowser.get(chrome_path).open(url)
私は次の出力を得る:WindowsのCMD
''入力を ''(ISO-8859-2) ''または '' decode( "windows-1250")したらどうなりますか?たぶん '.encode(" utf-8 ")'? – jDo
すべての組み合わせを試しましたが、奇妙な文字や次のエラーメッセージが表示されます: C:\ Users \ user \ Desktop \ TT> python compare.py regi.txt regi1.txt トレースバック(最新のコール最後): text_code = text.decode( "windows-1250")。encode( "UTF-8") ファイル "C:\ Python27 \ lib \ encodings \ cp1250.py"のファイル "compare.py" 、ライン15、デコードに 戻りcodecs.charmap_decode(入力、エラー、decoding_table) UnicodeDecodeError: 'のcharmap' コーデックは位置1でバイト0x81とをデコードすることができない。CHARAC TERマップ –
user2666249
に私は '比較=オープン(ファイル名1を意味、 'r')。read()。decode( "ISO-8859-2") '。 "latin1"、 "latin2"または "cp-1252"も試してみる価値があります。 – jDo