teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2017/03/26 14:59

投稿

Zuishin
Zuishin

スコア28675

answer CHANGED
@@ -1,1 +1,26 @@
1
- Python のバージョンを確認してみてください。2 と 3 では文字列の扱いが異なりますし、2 の場合は環境によって異なるエンコードを使います。
1
+ Python のバージョンを確認してみてください。2 と 3 では文字列の扱いが異なりますし、2 の場合は環境によって異なるエンコードを使います。
2
+
3
+ 追記
4
+
5
+ [Pythonの日本語処理](http://www.wakayama-u.ac.jp/~kazama/lab/python/i18n.html)
6
+ ```
7
+ Pythonでは,文字列は8ビット単位で格納され,その文字符号化はプラットフォームによって異なる.
8
+
9
+ 文字列は次のように生成する.
10
+
11
+ >>> s='日本語'
12
+ >>> print s
13
+ 日本語
14
+ なお,プラットフォームにより,変数sにどのような値が入っているかは異なる.例えば,Mac OS Xでは,この文字列はUTF-8で符号化され,文字列長は9バイトである.
15
+
16
+ >>> s
17
+ '\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e'
18
+ >>> len(s)
19
+ 9
20
+ Windowsでは,CP 932で符号化され,文字列長は6バイトである.
21
+
22
+ >>> s
23
+ '\x93\xfa\x96{\x8c\xea'
24
+ >>> len(s)
25
+ 6
26
+ ```