【发布时间】:2017-01-23 07:46:44
【问题描述】:
有人告诉我编写一个获取字符串文本的代码,并检查它的编码是否等于我们想要的特定编码。我已经搜索了很多,但我似乎没有找到任何东西。我找到了一个方法(getEncoding()),但它只适用于文件,这不是我想要的。而且我被告知我应该使用 java 库而不是 mozilla 或 apache 的方法。 我真的很感激任何帮助。提前致谢。
【问题讨论】:
有人告诉我编写一个获取字符串文本的代码,并检查它的编码是否等于我们想要的特定编码。我已经搜索了很多,但我似乎没有找到任何东西。我找到了一个方法(getEncoding()),但它只适用于文件,这不是我想要的。而且我被告知我应该使用 java 库而不是 mozilla 或 apache 的方法。 我真的很感激任何帮助。提前致谢。
【问题讨论】:
您想到的是“国际化”。有类似 Loc4j 这样的库,但您也可以在 Java 中使用 java.util.Locale 来获取它。然而,一般来说,文本只是文本。它是具有一定价值的代币。没有本地化信息存储在角色中。这就是文件通常在标头中提供编码的原因。控制台或终端也可以使用某些命令/功能提供本地化。
除非您知道源编码和使用的令牌,否则您猜测另一端使用什么编码的能力有限。如果您仍然想这样做,您将需要进入更深的领域,例如解密,通常使用统计分析来完成此类工作。这反过来又需要关于使用不同令牌的数据库,并且根据文本、数据库和算法的质量,需要特定数量的文本。特殊的东西,比如用例如写瑞典语。美国编码(例如使用a 表示å 和ä 或o 表示ö)将需要更高级的分析。
编辑
由于我得到评论说编码和国际化是不同的实体,我将添加一些 cmets。可以使用不同的编码来简单地使用英语(比如一些英语特殊字符)。也可以使用例如Charset 进行编码。然而,对于许多使用不同编码的应用程序,使用Locale 可能仍然有效,因为这个库可以对不同编码的文本进行大量操作。
【讨论】:
感谢您的回答和贡献,但这两个链接起到了作用。我已经看过这两页,但它似乎对我不起作用,因为我正在考虑直接获取编码,然后将其与特定的进行比较。 This is one of them
【讨论】: