gpt4 book ai didi

Python UTF-16 编码十六进制表示

转载 作者:太空宇宙 更新时间:2023-11-04 07:10:56 25 4
gpt4 key购买 nike

我在 Python 2.7.2 中有一个字符串 u"\u0638"。当我将它写入文件时:

f = open("J:\\111.txt", "w+")
f.write(u"\u0638".encode('utf-16'))
f.close()

十六进制看起来像:FF FE 38 06当我将这样的字符串打印到标准输出时,我会看到:'\xff\xfe8\x06'。

问题: 输出到stdout的字符串中\x38在哪里?也就是说为什么输出到stdout的字符串不是'\xff\xfe\x38\x06'?

如果我将字符串写入文件两次:

f = open("J:\\111.txt", "w+")
f.write(u"\u0638".encode('utf-16'))
f.write(u"\u0638".encode('utf-16'))
f.close()

文件中的十六进制表示包含字节顺序标记(BOM)\xff\xfe 两次:FF FE 38 06 FF FE 38 06

请问有什么技巧可以避免在 UTF-16 编码的字符串中写入 BOM?

最佳答案

ASCII 字符 8 有十六进制表示 0x38。所以你的字符串:

\xff\xfe8\x06

四个 字节长。以空格分隔,字节为:

\xff \xfe 8 \x06

Python 对不表示可打印 ASCII 字符的字节使用 \x 表示法。

关于Python UTF-16 编码十六进制表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11197437/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com