回答編集履歴
2
情報を追加
test
CHANGED
@@ -37,3 +37,43 @@
|
|
37
37
|
|
38
38
|
|
39
39
|
参考になれば。
|
40
|
+
|
41
|
+
|
42
|
+
|
43
|
+
---
|
44
|
+
|
45
|
+
追記:
|
46
|
+
|
47
|
+
BOM (バイトオーダーマーク)というのは、エンコーディングなどを示すためにファイル先頭に付けるマークで、その並び順でLE (リトルエンディアン)か、BE (ビッグエンディアン)かの判定にも使われます。
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
問題は、BOMが付いていない場合で、この場合はファイルの先頭付近の内容から、エンコーディングが推測されます。
|
52
|
+
|
53
|
+
大雑把に分類すると、
|
54
|
+
|
55
|
+
英字が1バイト:ASCII、shift-jis、utf-8など
|
56
|
+
|
57
|
+
英字が2バイト:utf-16など
|
58
|
+
|
59
|
+
※utf-16などの場合、バイナリエディタなどで見ると、アルファベットの間に0x00が挟まっているかと思います。
|
60
|
+
|
61
|
+
|
62
|
+
|
63
|
+
0x00~0x7fしか存在しない:ASCII (または shift-jis)
|
64
|
+
|
65
|
+
0x81など、0x00~0x7f以外の値が含まれる:shift-jis、utf-8など
|
66
|
+
|
67
|
+
※shift-jisの場合は、日本語を2バイトで表す場合の1バイト目など
|
68
|
+
|
69
|
+
詳細は文字コード表を参考にするとよいかと思います。
|
70
|
+
|
71
|
+
|
72
|
+
|
73
|
+
参考:
|
74
|
+
|
75
|
+
UCS-2 および UCS-2 とユニコードの関係 https://www.ibm.com/support/knowledgecenter/ja/ssw_i5_54/nls/rbagsucs2.htm
|
76
|
+
|
77
|
+
|
78
|
+
|
79
|
+
Unicode対応 文字コード表 (と解説) http://ash.jp/code/unitbl21.htm
|
1
書式の改善など
test
CHANGED
@@ -1,16 +1,10 @@
|
|
1
|
-
|
1
|
+
テキストエディタで開いた際、多くの場合、エンコーディングが表示されるので、それを参考にするとよいかと思います。(エンコーディングの扱いに慣れている場合は、バイナリエディタで見た方が原因がはっきり分かりますが・・)
|
2
|
+
|
3
|
+
※BOM無しの場合は、ファイルの先頭付近に日本語などが含まれていない場合、ASCII、Shift-JIS、Utf-8等の判定材料が無いので、エンコーディングの判定で失敗する場合もあります。
|
2
4
|
|
3
5
|
|
4
6
|
|
5
|
-
バイナリエディタで開くと、先頭部分はこんな感じになっているかと思います。
|
6
|
-
|
7
|
-

|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
7
|
+
今回の質問の場合、ファイルを開く`f_in = open(filelistname, 'r')`の段階でエンコードに配慮する必要があるかと思います。
|
14
8
|
|
15
9
|
|
16
10
|
|
@@ -22,7 +16,7 @@
|
|
22
16
|
|
23
17
|
|
24
18
|
|
25
|
-
例:
|
19
|
+
例: utf-8の場合
|
26
20
|
|
27
21
|
`f_in = codecs.open(filelistname, 'r', encoding='utf-8')`
|
28
22
|
|