Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将特殊字符存储为unicode_Java_Encoding - Fatal编程技术网

Java 将特殊字符存储为unicode

Java 将特殊字符存储为unicode,java,encoding,Java,Encoding,我们必须经常与特殊人物打交道。遗憾的是,到目前为止,编码还没有受到特别的关注。你可以猜到,我们最终总会遇到这样或那样的编码问题 目前,我们正在将所有特殊字符更改为unicode(在属性文件和代码中)(我知道这不符合良好的编码实践,但目前无法更改) 现在我不太确定我们应该如何使用不同的编码来处理来自其他系统的输入,我们应该将特殊字符转换为unicode吗?关于如何处理这些字符,是否有好的API或约定?如果您知道原始编码,您可以使用 String orig = "Cp1250" BufferedRe

我们必须经常与特殊人物打交道。遗憾的是,到目前为止,编码还没有受到特别的关注。你可以猜到,我们最终总会遇到这样或那样的编码问题

目前,我们正在将所有特殊字符更改为unicode(在属性文件和代码中)(我知道这不符合良好的编码实践,但目前无法更改)


现在我不太确定我们应该如何使用不同的编码来处理来自其他系统的输入,我们应该将特殊字符转换为unicode吗?关于如何处理这些字符,是否有好的API或约定?

如果您知道原始编码,您可以使用

String orig = "Cp1250"
BufferedReader r = new BufferedReader(new InputStreamReader(is, orig));

其中字符串orig必须反映这一点。然后你可以在代码中做任何你想做的事情,因为Java在内部以UTF8存储它。如果你想以不同的编码再次保存它,你将使用带有显式指定编码的双
OutputStreamWriter

你没有给我们足够的上下文来提供任何帮助回答不正确。请注意,Java中的所有字符都是Unicode。从另一个源传输文本数据时使用哪种编码是另一回事。当您在Java代码中硬编码äüö并在不支持源文件原始编码的JVM环境中运行它时,您会说即使client支持这种特殊的编码。所以我不能同意你的观点,所有字符都是unicode的……你需要什么信息来提供一个有用的答案,基本上我们有多个来源为我们提供输入,我真正想知道的是,在如何处理这些输入方面是否有任何特定的约定s包含特殊字符。请阅读JVM和Java语言规范。Java中的
char
始终是一个UTF-16代码单元。源代码的编码与编译后的表单无关。您可能有一些我完全不知道的奇怪编码,只要您在使用该编码的机器上编译它如果你不使用unicode(并让编译器知道这一点),那么这一点都不重要。好的,我明白你的意思了,字符存储为unicode-我指的是字符串。。。