将花哨/艺术 unicode 文本转换为 ASCII

Posted

技术标签:

【中文标题】将花哨/艺术 unicode 文本转换为 ASCII【英文标题】:Convert fancy/artistic unicode text to ASCII 【发布时间】:2021-11-28 10:04:10 【问题描述】:

我有一个 unicode 字符串,例如“?????????????????? ????????????????”并想将其转换为 ASCII 形式的“暴徒生活”。

我知道我可以在 Python 中实现这一点

import unidecode
print(unidecode.unidecode('???????????????? ????????????????'))
// thug life

但是,这也会关联我想要保留的其他 unicode 字符(例如中文/日文字符、表情符号、重音字符等)。

有没有办法检测这些类型的“艺术”Unicode 字符?

更多示例:

?????????????????? ??????????????????

?????????????????? ??????????????????

?????????????????? ??????????????????

生命的意义

感谢您的帮助!

【问题讨论】:

参见。 NFC/NFD/NFKD/NFKC ???? ''..normalize() 【参考方案1】:
import unicodedata
strings = [
  '???? ????',
  '???? ????',
  '???? ????',
  '???? ????',
  'thug life']
for x in strings:
  print(unicodedata.normalize( 'NFKC', x), x)

输出.\62803325.py

thug life ???? ????
thug life ???? ????
thug life ???? ????
thug life ???? ????
thug life thug life

资源

unicodedata — Unicode Database Normalization forms for Unicode text

【讨论】:

不适用于以下情况:"? ? ?"、"?︎?︎?︎?︎"、"ωεłł"、"ʜᴀᴋsʜɪ"、"???"、"??? ”、“RᗅIPႮ”、“ғʀᴇᴇ”、“ᕼᗩᑭᑭIᗴᗴ”、“?υεεɴ”。 @GokulNC 你需要Romanization/transliteration of Unicode text恕我直言……另请参阅pypi.org/project/Unidecode @GokulNC,您知道如何使用 python 将此类字体转换为 unicode 吗?如果是,请在此处评论您的方法。 如上所述,Unidecode 能够清理大部分,尽管它并没有完全 100% 解决问题。 是的,我也是这样。我想知道,如果你找到一种方法来规范化字体,如“? ? ?”、“?︎?︎?︎?︎”、“ωεłł”、“ʜᴀᴋsʜɪ”、“???”、“???” , "RᗅIPႮ", "ғʀᴇᴇ", "ᕼᗩᑭᑭIᗴᗴ", "?υεεɴ" 你在评论中提到的。

以上是关于将花哨/艺术 unicode 文本转换为 ASCII的主要内容,如果未能解决你的问题,请参考以下文章

使用格式化将 ASCII 文本转换为 Unicode [关闭]

如何将 ANSI 文本转换为 Unicode?

如何在 C# 中标准化花哨的 unicode 字符串?

如何将 Unicode 文本块转换为 UTF-8 (HEX) 代码点?

如何不使用 cvs2svn 将 Unicode 文本文件转换为 UTF-8?

文本艺术/横幅未出现在 cmd 提示符中 (Unicode/ASCII)