Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 当我在python3中组合两个字符时,字符串反转,这是不期望的_Python 3.x_Character Encoding - Fatal编程技术网

Python 3.x 当我在python3中组合两个字符时,字符串反转,这是不期望的

Python 3.x 当我在python3中组合两个字符时,字符串反转,这是不期望的,python-3.x,character-encoding,Python 3.x,Character Encoding,我需要使用一些特殊的字符,比如“מ”。当我把它和另一个简单的角色结合起来时,奇怪的事情发生了。结果的顺序相反。当我执行“1”+“מ”并打印时,我可以看到第一个是“מ”,第二个是“1” 我想做的是一些字符串操作,使用这个名称保存文件名 我检查了一些解码或编码方式,但失败了 a='מ' 打印(a.encode('UTF-8')) b='1'+a 打印(b.编码('utf8')。解码('utf8'))#不应 打印(b.startswith('1')) 打印(b'\x31\xd7\x9e'.解码('ut

我需要使用一些特殊的字符,比如“מ”。当我把它和另一个简单的角色结合起来时,奇怪的事情发生了。结果的顺序相反。当我执行“1”+“מ”并打印时,我可以看到第一个是“מ”,第二个是“1”

我想做的是一些字符串操作,使用这个名称保存文件名

我检查了一些解码或编码方式,但失败了

a='מ'
打印(a.encode('UTF-8'))
b='1'+a
打印(b.编码('utf8')。解码('utf8'))#不应
打印(b.startswith('1'))
打印(b'\x31\xd7\x9e'.解码('utf8'))#“1”的unicode是31

为什么会发生这种情况?

这不是因为编码,而是因为Unicode

您的字符串
a
是从右向左的(根据unicode)

编号
1
仅具有从左到右的首选项,但它不会覆盖从右到左脚本中的从右到左

因此字节的顺序是正确的(就像语义顺序一样),但是显示会反转,因为它是一个从右向左的字符串

您可以在Unicode中覆盖order wither,或者(首选)使用markdown(例如HTML元素)

所以:编码没什么,只是从右向左打印字符的方法。语义应该保留在编码之间