工作环境是jboss+mssql
我正在做一个查询并将格式化的结果输出到一个文本文件。查询结果有一些法语重音字符。
在我的本地机器上,一切正常,但在 UAT 服务器(linux box,UTF-8)上,法语重音字符变成了问号。
有谁知道如何解决它?
工作环境是jboss+mssql
我正在做一个查询并将格式化的结果输出到一个文本文件。查询结果有一些法语重音字符。
在我的本地机器上,一切正常,但在 UAT 服务器(linux box,UTF-8)上,法语重音字符变成了问号。
有谁知道如何解决它?
这取决于您如何创建文件 - 代码示例会有所帮助。
如果您确实明确指定了编码,例如在创建 时Writer
,如果它与您查看文件的机器的语言环境不匹配,您可能会看到问号、占位符框等,而不是重音字母。您可以使用该locale
命令检查您的语言环境,这将使学习相关的字符编码成为可能。这只是查看文件的问题。您说该框是 UTF-8,但请确保该应用程序也在 UTF-8 语言环境下运行 - 您的用户控制台和服务器应用程序可能使用不同的语言环境。
如果您在编写时没有指定字符编码,大多数情况下您最终会使用系统的语言环境。在这种情况下,可能会发生此语言环境不支持您需要的字符,因此将它们替换为占位符。一种解决方案是更改应用程序运行的语言环境,例如通过导出相应的LC_*
环境变量。
所以,简短的清单是这样的:
locale
命令输出)?od -t x1
命令或使用十六进制查看器(如mc
. 问号是实际的问号(十六进制代码 3F),还是其他字符?如果它们占用一个字节,则它们可能采用 Latin-N (ISO 8859-N) 编码之一。如果它们占用超过一个字节,则可能是 UTF-8(我知道字母 az 看起来很正常,所以它不是 UTF-16)。