我正在阅读包含特殊字符的来源½.我如何将其转换为1/2?该字符是句子的一部分,我仍然需要能够"正常"使用该字符串.我正在阅读网页资源,所以我不确定我是否会一直知道编码?
编辑:我试过看其他答案,但他们不适合我.他们似乎总是从以下事情开始:
s= u'£10"
Run Code Online (Sandbox Code Playgroud)
但我已经收到错误:"没有声明编码".但我知道我正在进行什么编码,或者这不重要吗?我只选一个吗?
这真的是两个问题.
#1.解释½: 使用unicodedata模块.您可以询问字符的数值,也可以使用规范规范化对其进行规范化并自行解析.
>>> import unicodedata
>>> unicodedata.numeric(u'½')
0.5
>>> unicodedata.normalize('NFKC', u'½')
'1?2'
Run Code Online (Sandbox Code Playgroud)
#2.编码问题:如果您正在使用终端,请确保Python知道终端编码.如果您正在编写源文件,请确保Python知道文件编码.您不能只"选择"为Python设置的编码,您必须告知Python您的终端/文本编辑器已经使用的编码.
Python允许您使用Vim/Emacs样式注释设置文件的编码.如果您使用Vim,请在文件顶部添加注释:
# coding=UTF-8
Run Code Online (Sandbox Code Playgroud)
或者,如果你使用Emacs:
# -*- coding: UTF-8 -*-
Run Code Online (Sandbox Code Playgroud)
如果你既不使用Vim也不使用Emacs,那么哪一个并不重要.显然,如果你不使用UTF-8,你应该替换你实际使用的编码.(UTF-8是我唯一能推荐的编码.)
| 归档时间: |
|
| 查看次数: |
1047 次 |
| 最近记录: |