首页 > 解决方案 > Java中两种不同的正斜杠

问题描述

在处理 Java 中的 unicode 编码字符时,我使用 Normalizer 对其进行规范化并将其转换为字符串。下面是我使用的代码:

input = "¼";
input = Normalizer.normalize(input,Normalizer.Form.NFKD);

output: 1⁄4. 

该方法使用的正斜杠"⁄"的 unicode 编码\u2044与我可以使用"/"编码为\u002f.

这些有什么区别,什么时候应该使用一个而不是另一个?

提前致谢。

里希特

标签: unicodeunicode-normalization

解决方案


如今的 Unicode 包含大量常见的非字母字符的变体,斜线也不例外。(这甚至不是全部 - 搜索“solidus”以获得更多信息。)你有分数斜线(你的),全角斜线,除法斜线(是的,这与分数一分开),粗斜线,超厚斜线 - 名单还在继续。

好消息是您可以决定哪种斜线适合您的上下文。

如果您想要规范化只是因为您不希望分数显示为单个字符,或者您希望所有分数都以相同的方式显示(unicode 显然不能为每个可能的分数都有一个字符)然后使用这个分数斜线可能是你想要的。

另一方面,如果您想规范化,因为您想将可用字符集减少到可以在标准键盘上轻松键入的字符,那么您应该使用标准正斜杠。


推荐阅读