お世話になります。
python入門(2&3対応)で勉強しています
Python2系から3系になってから文字列はUnicodeになり、そしてbytes型が追加されたことはわかりました。
bytes型を実際に書籍通りで実行してみました
C:\Users\mtg-1>python
Python 3.5.2 |Anaconda 4.2.0 (64-bit)| (default, Jul 5 2016, 11:41:13) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
b'abc'
b'abc'
bytes('あいう','utf8')
b'\xe3\x81\x82\xe3\x81\x84\xe3\x81\x86'
b'あい '+ 'うえお'
File "<stdin>", line 1
SyntaxError: bytes can only contain ASCII literal characters.
b'あい'.decode('utf-8') + 'うえお'
File "<stdin>", line 1
SyntaxError: bytes can only contain ASCII literal characters.
str(b'あいう')
File "<stdin>", line 1
SyntaxError: bytes can only contain ASCII literal characters.
*********************************
b'あい' + 'うえお'
File "<stdin>", line 1
SyntaxError: bytes can only contain ASCII literal characters.
これは理解できます。
b'あい'.decode('utf-8') + 'うえお'
File "<stdin>", line 1
SyntaxError: bytes can only contain ASCII literal characters.
str(b'あいう')
File "<stdin>", line 1
SyntaxError: bytes can only contain ASCII literal characters.
.decode('utf-8')で連結させようとしてもバイトにはASCIIリテラル文字しか含めることができません。
また同じ理由でStr関数に直接渡すことができない
import sys
print(sys.getdefaultencoding())
utf-8
print(sys.stdout.encoding)
cp932
print('こんにちはこんにちは')
こんにちはこんにちは
となります
print(sys.stdout.encoding)
cp932→utf-8にするにはどうすればいいのでしょうか?
よろしくお願いいたします
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/01/05 07:41
2017/01/05 08:22
2017/01/05 09:25
2017/01/05 10:01
2017/01/05 10:13
2017/01/06 00:34