为啥在sql里的汉字在读出数据时却显示问号呢?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥在sql里的汉字在读出数据时却显示问号呢?相关的知识,希望对你有一定的参考价值。

就随便print一个汉字的字符串,出来的都是问号,是sql装的问题吗?遮掩的话应该是可以在某个地方调过来的,请教那位高人指点下!

参考技术A 不是SQL装的有问题,只要在插入汉字的时候在前面加一个大写的N就好了,比如

insert a values(N'我是..')

加N代表以Unicode编码储存,这个编码全球通用,所以就不会存在乱码的问题了.
参考技术B 冒号前是标号,也就是标识一个地址的符号。这个地址上存储的指令是nop,也就是一个空操作。
请参考
参考技术C 看看编码,编码应该是不正确! 参考技术D 编码有问题

从程序向SQL数据库输入汉字,但是都变成了问号,求解决方案!

String sqlbb="insert into author(sn,author) values('"+tfl1.getText()+"','"+ tfl9.getText()+"')";
能显示数据库里的汉字,但是不能用汉字查找和添加,应该怎么改?

编码不对应。

按UTF-8统一编码。

SQL Server?
String sqlbb="insert into author(sn,author) values(N'"+tfl1.getText()+"',N'"+ tfl9.getText()+"')";
参考技术A 设置过数据库编码没有?或者在建表的时候声明编码方式?追问

字符集是 uft8,gbk和gb2312也试过

追答

IDE或者编码工具的字符集设置了?

追问

额~在哪里怎么设置?能说具体点吗?

追答

你用的什么数据库?什么编程语言?用的什么IDE?还有就是你说的能显示数据库的汉字,是说可以查询到字段内容是汉字的数据库表?但又不能使用where子句?

追问

已解决,不过还是谢谢。就是在定位数据库时加上?characterEncoding=utf-8就可以了

追答

mysql的话也可以在my.ini中设置。都有类似的设定。你可以注意一下

本回答被提问者采纳

以上是关于为啥在sql里的汉字在读出数据时却显示问号呢?的主要内容,如果未能解决你的问题,请参考以下文章

在数据库表里输入汉字后变成问号????这是为啥??

SQL server 2005 为何插入汉字显示问号,修改也修改不了,为啥啊?求解

PHP执行SQL并将返回数据显示到网页上为啥汉字会变成问号

sql server数据库输入汉字时为啥变成问号

从数据库中取出的中文为啥是问号

用SQLyog的时候,创建的表中的汉字为啥显示是问号?