【问题标题】:downgrade non-ascii symbols to closest 7-bit ASCII equivalent (preferrably Java)将非 ascii 符号降级为最接近的 7 位 ASCII 等效符号(最好是 Java)
【发布时间】:2010-07-28 10:17:31
【问题描述】:

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

abc-åäö.txt

应该改为

abc-aao.txt

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

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

【问题讨论】:

标签: java unicode character-encoding ascii


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    也许this 可以吗?

    【讨论】:

    • 感谢您的参考,但我没有看到那里的实际代码,显然这已经是 JRE 的一部分(即 java.text.Normalizer 或类似的东西)或者不是轻量级解决方案。 ..
    【解决方案3】:

    看来问题在这里解决了——

    [solution][howto] 将特殊字符转换为普通字符(é 到 e) http://www.ramonfincken.com/permalink/topic192.html

    【讨论】:

      【解决方案4】:

      如果你会考虑使用 python,有一个相当不错的 python 包,叫做unidecode,它可以获取 Unicode 文本的 ASCII 音译。

      【讨论】:

        【解决方案5】:

        好的,发现或多或少在这个问题上有用: PHP: Replace umlauts with closest 7-bit ASCII aequivalent in an UTF-8 string

        【讨论】:

          猜你喜欢
          • 2012-08-02
          • 1970-01-01
          • 1970-01-01
          • 2012-05-27
          • 2011-02-07
          • 1970-01-01
          • 1970-01-01
          • 2017-06-01
          相关资源
          最近更新 更多