作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
据我所知,这些在使用 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。
最佳答案
这是我所做的(稍后可能会有所帮助):
创建了一个单位编码文件,例如 /tmp/test.dat
使用 hexl-mode
在 Emacs 中打开它。
使用hexl-insert-hex-char
命令插入字节C3
和B6
。
以文本方式打开此文件(使用文本模式
)。 Emacs 将其识别为多字节编码的文件,并显示 ö
代替前面的字节。
结论:您的缓冲区中包含源代码的编码系统需要为 utf-8
才能发送 ö
的两个字节。但是,如果它是单字节编码,并且您选择将字节 F6
映射到 ö
的区域设置,您将获得该字节。
-*-coding: utf-8 -*-
注释。
关于python - 为什么 Emacs 将我的文字 Unicode 字符串弄错了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19648263/
我是一名优秀的程序员,十分优秀!