2016-03-29 21 views
0

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

enter image description here

+0

''入力を ''(ISO-8859-2) ''または '' decode( "windows-1250")したらどうなりますか?たぶん '.encode(" utf-8 ")'? – jDo

+0

すべての組み合わせを試しましたが、奇妙な文字や次のエラーメッセージが表示されます: 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

+0

に私は '比較=オープン(ファイル名1を意味、 'r')。read()。decode( "ISO-8859-2") '。 "latin1"、 "latin2"または "cp-1252"も試してみる価値があります。 – jDo

答えて

1

はそうあなたが変な記号を取得しているUTF-8と互換性がないいくつかのエンコーディングを持っています。

cmdでchcpを実行するとチェックできます。

UTF-8の場合は、chcp 65001に設定して、他のsettingsのcmdを確認する必要があります。

+0

これは完璧に動作しています。彼らがスクリプトを使用するたびにコマンドを実行してください。 – user2666249

関連する問題