gpt4 book ai didi

python - 为什么 Emacs 将我的文字 Unicode 字符串弄错了?

转载 作者:行者123 更新时间:2023-12-01 05:33:29 27 4
gpt4 key购买 nike

据我所知,这些在使用 UTF-8 作为默认编码的系统中应该是等效的:

pattern1 = 'Wörterbuch Wortformen'.decode('utf8')
pattern2 = u'Wörterbuch Wortformen'

但是,当我将这些行从 Emacs 缓冲区发送到 Python 进程 (M-x python-shell-send-region) 时,会发生一些奇怪的事情。

>>> pattern1
u'W\xf6rterbuch Wortformen'
>>> pattern2
u'W\xc3\xb6rterbuch Wortformen'

在终端中运行的 Python shell 中,这两行结果都是 u'W\xf6rterbuch Wortformen'

这是怎么回事?

我的区域设置配置为使用 UTF-8。

最佳答案

这是我所做的(稍后可能会有所帮助):

  1. 创建了一个单位编码文件,例如 /tmp/test.dat 使用 hexl-mode 在 Emacs 中打开它。

    <
  2. 使用hexl-insert-hex-char命令插入字节C3B6

  3. 以文本方式打开此文件(使用文本模式)。 Emacs 将其识别为多字节编码的文件,并显示 ö 代替前面的字节。

<小时/>

结论:您的缓冲区中包含源代码的编码系统需要为 utf-8 才能发送 ö 的两个字节。但是,如果它是单字节编码,并且您选择将字节 F6 映射到 ö 的区域设置,您将获得该字节。

PS。确保您有 -*-coding: utf-8 -*- 注释。

关于python - 为什么 Emacs 将我的文字 Unicode 字符串弄错了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19648263/

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