简体   繁体   English

从 SQL 服务器读取 nvarchar 时带菱形的问号

[英]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 运行。

  1. In Windows 10 CMD, the jar file could run like this:在 Windows 10 CMD 中,jar 文件可以这样运行:

> 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运行,我不知道为什么这是另一个问题。

  1. If you want to run war file on tomcat server, in {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.

相关问题 从android sdcard文件中删除带有问号文本的黑色菱形 - remove black diamond with a question mark text from android sdcard file SQL 和问号问题 - Problem with SQL and question mark 一些字符从 Java 上的文件中读取为问号 (?) - Some chars read as a question mark (?) from a file on Java SQL语法中的JDBC问号 - JDBC Question Mark in SQL Syntax 连字号转换为菱形黑色问号,同时使用apache POI设置Excel列标题 - hyphen is converted into diamond black question mark, while setting Excel column header using apache POI 为什么将FileInputStream read()方法置于无限循环中时会错误地读取问号(ascii:63)? - Why is FileInputStream read() method wrongly reading question mark (ascii: 63) when put into infinite loop? SQL Server Nvarchar 和 Java 准备好的语句 - SQL Server Nvarchar and Java prepared statement Hibernate从Sql Server表创建pojo类时将'NVARCHAR'转换为'Serializable' - Hibernate Converting 'NVARCHAR' to 'Serializable' on creating pojo classes from Sql Server tables 从命令提示符中删除问号[Java] - Remove question mark from Command Prompt [Java] 当我从文本文件中读取时得到问号 - Getting question marks when I read from text file
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM