将非ascii符号降级为最接近的7位ASCII等效符号(最好是Java)

时间:2010-07-28 10:17:32

标签: java unicode character-encoding ascii

是否有任何简单/轻量级的解决方案可以将至少一些非ASCII符号更改为相应的ASCII模拟?例如这个字符串

abc-åäö.txt

应改为

abc-aao.txt

一些背景知识:Zip-tools不能可靠地支持UTF-8,因此需要降级。 AFAICR Google“将附件下载为单个zip文件”功能会将所有非ascii符号替换为“_”字符。

PS:代码也可能是其他语言,如果它或多或少可以理解,我会把它移植到Java。 PPS:到目前为止我的第一个问题,所以请不要在地面以下取消我好吗?

5 个答案:

答案 0 :(得分:4)

看看java.text.Normalizer。它可以帮助您转换等效字符:http://en.wikipedia.org/wiki/Unicode_equivalence

答案 1 :(得分:1)

也许this会这样做?

答案 2 :(得分:1)

看起来问题在这里解决了 -

[解决方案] [howto]将特殊字符转换为普通字符(Ã到e) http://www.ramonfincken.com/permalink/topic192.html

答案 3 :(得分:0)

好的,在这个问题上找到了或多或少的东西: PHP: Replace umlauts with closest 7-bit ASCII aequivalent in an UTF-8 string

答案 4 :(得分:0)

如果你考虑使用python,有一个非常好的python包名为unidecode,它可以获得Unicode文本的ASCII音译。