如何将格式化字符串转换为纯文本

fykwrbwg  于 2021-09-29  发布在  Java
关注(0)|答案(1)|浏览(373)

用户复制粘贴并发送以下格式的数据:”𝕛𝕠𝕧𝕪 𝕕𝕖𝕓𝕓𝕚𝕖" 我需要将它转换成普通的txt(我们可以说ascii字符),比如“jovy debbie”,它有不同的字体和格式:例如:𝑱𝒆𝒏𝒊𝒄𝒂 𝑫𝒖𝒈𝒐𝒔' '𝙶𝚎𝚟𝚒𝚎𝚕𝚢𝚗 𝙽𝚒𝚌𝚘𝚕𝚎 𝙻𝚞𝚖𝚋𝚊𝚐'
如有任何帮助,我们将不胜感激。我已经提到了其他堆栈溢出问题,但运气不佳:(

jqjz2hbq

jqjz2hbq1#

这些字母来自数学字母数字符号块。
由于它们与ascii对应项之间有固定的偏移量,因此可以使用 tr 要Map它们,例如:

"𝕛𝕠𝕧𝕪 𝕕𝕖𝕓𝕓𝕚𝕖".tr("𝕒-𝕫", "a-z")

# => "jovy debbie"

同样的方法也可用于其他样式,例如。

"𝑱𝒆𝒏𝒊𝒄𝒂 𝑫𝒖𝒈𝒐𝒔".tr("𝒂-𝒛𝑨-𝒁", "a-zA-Z")

# => "Jenica Dugos"

这使您可以完全控制角色Map。
或者,您可以尝试unicode规范化。nfkc/nfkd表单应删除大多数格式,并且似乎适用于您的示例:

"𝕛𝕠𝕧𝕪 𝕕𝕖𝕓𝕓𝕚𝕖".unicode_normalize(:nfkc)

# => "jovy debbie"

"𝑱𝒆𝒏𝒊𝒄𝒂 𝑫𝒖𝒈𝒐𝒔".unicode_normalize(:nfkc)

# => "Jenica Dugos"

相关问题