gpt4 book ai didi

java - 删除变音符号和平台问题

转载 作者:搜寻专家 更新时间:2023-11-01 03:44:22 28 4
gpt4 key购买 nike

我有这种方法可以从 Java 中的字符串中删除变音符号:

String nfdNormalizedString = Normalizer.normalize(str, Normalizer.Form.NFD);
Pattern pattern = Pattern.compile("\\p{InCombiningDiacriticalMarks}+");
return pattern.matcher(nfdNormalizedString).replaceAll("");

我有几个简单的测试用例。当我从我的 IDE 中运行它们时它们通过了,但是当我从 Maven 中尝试它们时它们失败了。我从命令行调用 maven,我的环境编码是 UTF-8。我正在运行 Apple 提供的 Java 6 最新补丁。

我不知道IDE内部的编码是什么,但它使用相同的Java。有没有想过什么可能会导致这个问题?

最佳答案

我认为这是由于输入编码处理不当造成的。

如果源中指定了输入字符串,则需要确保源的编码与编译器配置中的编码相匹配。请注意,Maven 需要将编译器编码单独配置为 pom.xml 中名为 project.build.sourceEncoding 的属性:

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
...
</properties>

作为快速检查,您还可以用 Unicode 转义 (\uxxxx) 替换字符串文字中的字符 - 如果问题是由源编码引起的,它应该会消失。

如果您从文件中读取输入日期,请​​确保您在代码中正确指定了文件的编码,并且不要使用依赖于系统默认编码的方法。

另请参阅:

关于java - 删除变音符号和平台问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5942388/

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