gpt4 book ai didi

java - 在 Java 中将拉丁字符转换为普通文本

转载 作者:搜寻专家 更新时间:2023-11-01 01:23:01 25 4
gpt4 key购买 nike

我有以下字符。

Ą¢¥ŞŠŞŤŹŽŻąľśšşťźžżÀÁÂÃÄÅÆÇÈÉÊÈÌÍÈÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâäåæçèêêëìíîïðñòóõþöüÌÚþÚÚ存在

我需要转换成

AcYSSSTZZZalssstzzzAAAAAAACEEEEIIIIDNOOOOOOUUUUYTSaaaaaaaceeeeeiiionooooooouuuuyty

我正在使用 Java 1.4。

Normalizer.decompose(text, true, 0).replaceAll( "\p{InCombiningDiacriticalMarks}+", "");仅用变音符号替换字符。

像 ¢¥ÆÐÞßæðøþ 这样的字符没有被转换。

我该怎么做,在 JDK 1.4 中进行转换的有效方法是什么。

请帮忙。

问候,斯里德维

最佳答案

查看 ICU project ,尤其是 icu4j 部分。Transliterator 类将解决您的问题。

这是一个 Transliterator 示例,它将任何脚本转换为拉丁字符并删除所有重音和非 ascii 字符:

Transliterator accentsConverter = Transliterator.getInstance("Any-Latin; NFD; [:M:] Remove; NFC; [^\\p{ASCII}] Remove");

Any-Latin 部分执行转换,NFD; [:M:] 移除; NFC 删除重音符号,[^\\p{ASCII}] Remove 删除所有剩余的非 ASCII 字符。

您只需调用 accentsConverter.transliterate(yourString) 即可获得结果。

您可以在 ICU Transformations guide 中阅读有关如何构建转换 ID(Transliterator.getInstance 的参数)的更多信息.

关于java - 在 Java 中将拉丁字符转换为普通文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10188575/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com