나는 "ok", "ok2", "ok3"라는 gedit을 가진 gbk \ utf-8 \ ucs-2와 동일한 내용 "你"(영어로 you
) ". 하지에 (또는 유니 코드를 말한다)유니 코드 엔디안이 나를 어리둥절하게했다
>>> f1 = open('ok1', 'rb').read()
>>> f2 = open('ok2', 'rb').read()
>>> f3 = open('ok3', 'rb').read()
>>> f1
'\xc4\xe3\n'
>>> f2
'\xe4\xbd\xa0\n'
>>> f3
'`O\n\x00'
>>> hex(ord("`"))
'0x60'
>>> hex(ord("O"))
'0x4f'
사실 F3는 '\ X60 \ x4f' 하지만 다음과 같은 출력은 나에게 단 UCS-2 엔디안 문제가 왜
>>> '\xe4\xbd\xa0'.decode("utf-8")
u'\u4f60'
>>> '\xc4\xe3'.decode("gbk")
u'\u4f60'
>>>
혼란 utf-8, gbk가 아닌가요?
컴퓨터가 메모리 정렬에서 가장 중요한 바이트 앞에 놓기 때문에 시퀀스 ('0x60', '0x4F')가 파일에 저장됩니다. 따라서 파일 읽기는이 순서대로 바이트를 생성합니다. 내 컴퓨터에서 f1은 '\ xe3 \ xc4 \ n'이 아니므로 ?? f2는 f2 '가 아닙니다. \ xbd \ xe4 \ xa0 \ n' –
@Dd Pp : utf-8 파일을 쓸 때 gedit은 바이트 *를 하나씩 저장하기 때문에 *. 그러나 ucs-2 코드 파일을 작성할 때 gedit은 바이트를 2 x 2로 지정합니다. 바이트 내의 순서는 후자의 경우에만 엔디안에 따라 다릅니다. –