【发布时间】:2022-01-22 07:56:51
【问题描述】:
例如,我从 REST API 收到具有这种样式的文本
???????????? ?????? ???????????????????????? ??????????????? ??????????????? ??????????????? ??? ???????????????????????????
???????????? ?????? ???????????????????????? ??????????????? ??????????????? ??????????????? ??? ???????????????????????????
нσω тσ яємσνє тнιѕ ƒσηт ƒяσм α ѕтяιηg?
但这不是斜体、粗体或下划线,因为它的类型是字符串。
这种文字使它失败了我的正则表达式^[a-zA-Z0-9._]*$
我想规范化在标准字符串中收到的这个字符串,以使我的正则表达式仍然有效。
【问题讨论】:
-
有很多个可能的字符需要翻译,其中一些替换可能不明确。
-
这些是 Unicode 字符(例如,第一句的字符来自 this range)。请注意,在第三个中,有希腊语和俄语字符,它们没有明显的拉丁语等价物(有音译规则,但它们应该只适用于用外语书写的文本,而不适用于这种垃圾)。
-
同意这些 Unicode 字符不会干净地映射回英文的其他答案。 但是,如果您了解有关用于创建它们的服务的更多信息,并且您绝对 100% 有把握地了解这些字符串最初是纯文本英语,并且您ll 从不在任何地方都有真正的非英文文本,您也许能够找出他们的地图并可靠地向后运行。
-
@JoelCoehoorn 啊,是的,我明白了。如果这来自社交网络消息,则可能会发生这种情况。
-
How can I normalize fonts? 包含编写解决方案的详细信息,我相信。请参阅Unicode confusables。