Python:如何用半角字符替换全角字符?

标签 python unicode translation

如果这是 PHP,我可能会这样做:

function no_more_half_widths($string){
  $foo = array('1','2','3','4','5','6','7','8','9','10')
  $bar = array('1','2','3','4','5','6','7','8','9','10')
  return str_replace($foo, $bar, $string)
}

我在 python 中尝试了 .translate 函数,它表明数组的大小不同。我认为这是因为各个字符都以 utf-8 编码。有什么建议么?

最佳答案

内置的unicodedata模块可以做到:

>>> import unicodedata
>>> foo = u'1234567890'
>>> unicodedata.normalize('NFKC', foo)
u'1234567890'

“NFKC”代表“o​​jit_a KC [Compatibility Decomposition, followed by Canonical Composition]”,将全角字符替换为半角字符,即 Normalization Form

请注意,它还会同时规范化各种其他内容,例如单独的重音符号和罗马数字符号。

关于Python:如何用半角字符替换全角字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2422177/

相关文章:

python - 有没有办法在 python pandas 中将基于时间的事件划分为小时模板?

c# - 将十六进制 unicode 字符转换为其可视化表示

reactjs - i18next-xhr-backend 获取数据失败 React-Native

angular - ngx-translate 与 i18n 的区别

Android:无法以编程方式启动 "Google Voice Typing"

python - 为什么在我导入模块时 Python 会运行我的模块,我该如何停止它?

Python 正则表达式删除\n

python - 使用 python opencv 进行照明标准化

javascript - JavaScript 中的 Unicode 组合

Java - 将转义字符串转换为字符