我使用的是带有字符编码Arabic_CI_AS的Server数据库,并且我有一个HTML,其字符编码是utf-8。
这个页面与servlet通信,从数据库中获取数据并在页面中再次显示,我的问题是阿拉伯语数据在页面中显示为???????。
我怎么才能解决呢?
发布于 2014-04-28 13:32:11
此问题与Unicode和排序规则有关。
当您将(insert/update)写入表时,您必须在所有文本、char、varchar、nchar和Nvarchar数据类型前面添加"N“。除此之外,表中每一列的数据类型都必须是Nchar或Nvarchar。请记住,文本数据类型已被废弃,因此您有机会将其更改为Nvarchar (MAX)。
示例:
insert into table_name ( name , address )
values ( N'John', N'123 abc dr.')当您从这个表中读取时,您将得到所写的内容,除非名称和地址列数据类型不是Nchar,Nvarchar。如果您不将"N“放在前面和/或数据类型与上面的不同,那么无论何时使用NON_ASCI字符(非英语),您都会得到??
发布于 2014-04-28 14:09:48
user3571015是正确的,您必须确保数据保存正确。
试着用“校对”
SELECT (yourColumn)
FROM yourTable
WHERE yourColumn COLLATE Arabic_CI_AS = 'yourText'https://stackoverflow.com/questions/23341166
复制相似问题