① C# sqlite数据库中的中文是菱形加问号,请问读取后怎么转为正常的中文
SQLite存储是UTF-8, 可以查阅资料求证下, 转换函数如下, 根据查到的编码替换下面的源编码和目标编码, 不行就多尝试几次
public string ConvertEnconding(string str)
{
var utf8 = Encoding.UTF8; //SQLite源编码
var defaultCode = Encoding.Default; //目标编码
var utf8Bytes = utf8.GetBytes(str);
var defaultBytes = Encoding.Convert(utf8, defaultCode, utf8Bytes);
var defaultChars = new char[defaultCode.GetCharCount(defaultBytes, 0, defaultBytes.Length)];
defaultCode.GetChars(defaultBytes, 0, defaultBytes.Length, defaultChars, 0);
return new string(defaultChars);
}
② SQL server 2005 为何插入汉字显示问号,修改也修改不了,为什么啊求解
使用SQL SERVER2005的时候常常遇到中文字符为乱码的情况,经过研究发现,设置SQL的排序规则可以解决这个问题。
1、登录服务器打开Microsoft SQL Server Management Studio。
2、在要修改的数据库上单击鼠标右键,并选择“属性”。
3、在弹出的数据库属性窗口中点击“选择页”中的“选项”。
4、将排序规则由默认的SQL_Latin1_General_CP1_CI_AS修改为Chinese_PRC_CI_AS。
5、点击确定就OK。
varchar修改为nvarcharchar修改为nchar
注:如果无法修改的话,请尝试关闭所有与此数据库的连接,实在不行的话请重启动SQL SERVER服务。
两种方法:
1:
安装时不要选 Hide advice configuration options
然后再 Collation designator and order 中选择 Chinese_PRC 就可以了。
2:
在建表时指明某个字段的语言
方法 COLLATE Chinese_PRC_CS_AS_WS
示例:
create table test(a varchar(255) COLLATE Chinese_PRC_CS_AS_WS NULL, b varchar(255) COLLATE sql_latin1_general_cp1_ci_as NULL )insert test values('中文','中文')
插入后 字段 a 为 中文 ,b 为 ??
③ 从程序向SQL数据库输入汉字,但是都变成了问号,求解决方案!
编码不对应。
按UTF-8统一编码。
SQL Server?
String sqlbb="insert into author(sn,author) values(N'"+tfl1.getText()+"',N'"+ tfl9.getText()+"')";
④ SQL server 2000插入数据中的汉字怎么全部显示成问号了
1.检查存放汉字的字段是不是nvarchar类型的
2.在insert语句插入数据时,在中文字符前加大写的N,比如 N‘小明'
⑤ 为什么在sql里的汉字在读出数据时却显示问号呢
不是SQL装的有问题,只要在插入汉字的时候在前面加一个大写的N就好了,比如
insert a values(N'我是..')
加N代表以Unicode编码储存,这个编码全球通用,所以就不会存在乱码的问题了.
⑥ 插入的SQL语句中有中文值时中文变问号是怎么回事
数据库字段与你的代码中的中文字节格式不符,你可以试试将插入的中文先转成GBK或者UTF-8试试
⑦ sql server数据库输入汉字时为什么变成问号
属性改为nvchar 如果是代码的话,在字符串前面加"N”
⑧ 怎么解决sql server2016里面的汉字输出为问号的问题
1.右击你所建的数据库,点击“属性”,选择“选项”并点击。将其中的排序规则设置为:Chinese_PRC_CI_AS(选择下拉列表框即可设置),然后“确定“。
2.在表中将你的汉字字段的数据类型设置为nvarchar型或ntext型,设置前最好先将表中的数据全部删除。(不要使用varchar或text型,因为它们只会继续使你的数据乱码)。
3.设置好后,关闭服务器,再重新启动,就可生效了。