python - 在 Python unicode 字符串中删除重音符号(规范化)的最佳方法是什么?

标签 python python-3.x unicode python-2.x diacritics

我在 Python 中有一个 Unicode 字符串,我想删除所有重音符号(变音符号)。

我在网上找到了一种优雅的方法(在 Java 中):

  1. 将 Unicode 字符串转换为其长规范化形式(字母和变音符号使用单独的字符)
  2. 删除所有 Unicode 类型为“diacritic”的字符。

我是否需要安装诸如 pyICU 之类的库,或者仅使用 Python 标准库是否可行?那么 python 3 呢?

重要说明:我想避免使用从重音字符到非重音字符的显式映射的代码。

最佳答案

Unidecode是这个的正确答案。它将任何 unicode 字符串音译为最接近的 ascii 文本表示形式。

例子:

>>> from unidecode import unidecode
>>> unidecode('kožušček')
'kozuscek'
>>> unidecode('北亰')
'Bei Jing '
>>> unidecode('François')
'Francois'

关于python - 在 Python unicode 字符串中删除重音符号(规范化)的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11976720/

相关文章:

java - 你如何让 Matlab 为 UTF-16 文本文件编写 BOM(字节顺序标记)?

python - 用于 python 的可播种 CSPRNG?

python - 如何计算pyspark中的日期差异?

python - 致命 python 错误 :initfsencoding:unable to load the file system codec? 的原因可能是什么

python - tkinter - wm 协议(protocol)不处理 WM_HELP 消息

c++ - 查找 std::wstring 的长度

python - 扭曲的 Int16StringReceiver 小端字节顺序

python - 运行 tensorflow-gpu 的段错误

python - sqlalchemy.exc.ArgumentError : columns argument to select() must be a Python list or other iterable

java - 从 Java 结果集中读取 Unicode 文本