[英]Question mark with diamond when read nvarchar from SQL Server
I got a very strange problem here.我在这里遇到了一个非常奇怪的问题。
I need to read data from SQL Server (ver. 2016).我需要从 SQL 服务器(2016 版)读取数据。 A name like O'Neal
.像O'Neal
这样的名字。
When I load the String in my IDE/TextEditor, O'Neal
could be read correctly as O'Neal
.当我在我的 IDE/TextEditor 中加载字符串时, O'Neal
可以被正确读取为O'Neal
。
But when I package my program as jar or war file, O'Neal
is loaded like this O��Neal
.但是当我 package 我的程序为 jar 或 war 文件时, O'Neal
是这样加载的O��Neal
。
I have no idea how does this happend.我不知道这是怎么发生的。 Any suggestion would be appreciated.任何建议将不胜感激。 Thanks.谢谢。
I got a very strange problem here.我在这里遇到了一个非常奇怪的问题。
I need to read data from SQL Server (ver. 2016).我需要从 SQL Server (ver. 2016) 读取数据。 A name like O'Neal
.像O'Neal
这样的名字。
When I load the String in my IDE/TextEditor, O'Neal
could be read correctly as O'Neal
.当我在 IDE/TextEditor 中加载 String 时, O'Neal
可以正确读取为O'Neal
。
But when I package my program as jar or war file, O'Neal
is loaded like this O Neal
.但是当我将我的程序打包为 jar 或 war 文件时, O'Neal
就像这样被加载O Neal
。
I have no idea how does this happend.我不知道这是怎么发生的。 Any suggestion would be appreciated.任何建议将不胜感激。 Thanks.谢谢。
Refer to this question参考这个问题
Like @Arvind said, it runs correctly in IDE/Editor, because it's already encoded as UTF-8.正如@Arvind 所说,它在 IDE/编辑器中运行正确,因为它已经被编码为 UTF-8。
However, the jar or tomcat isn't, so we have to make sure it runs with encoding UTF-8.但是,jar 或 tomcat 不是,因此我们必须确保它以编码 UTF-8 运行。
> java -Dfile.encoding="UTF-8" -jar test.jar
However this command couldn't run in PowerShell, I don't know why it's another issue.但是这个命令不能在PowerShell运行,我不知道为什么这是另一个问题。
{pathToTomcat}/bin
, open catalina.bat
with editor.如果你想在 tomcat 服务器上运行 war 文件,在{pathToTomcat}/bin
中,用编辑器打开catalina.bat
。 add set "JAVA_OPTS=%JAVA_OPTS% -Djavax.servlet.request.encoding=UTF-8 -Dfile.encoding=UTF-8"
添加set "JAVA_OPTS=%JAVA_OPTS% -Djavax.servlet.request.encoding=UTF-8 -Dfile.encoding=UTF-8"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.