2015-04-06 29 views
0

我有一个WCF服务。它从数据库中提取数据,该数据由另一个设备填充,它将一些设备特定的信息保存在数据库列中。该设备以中文保存信息。我对该设备没有任何控制权。保存在db列中的数据是这样的:我的SQL Server列有像这样的数据ACC? ???? ?????? ???? TCP ????,

ACC? ???? ?????? ???? TCP???? ????????? ?? ???? ???? ???? 

如何获取中文字符而不是问号?任何快速帮助将不胜感激。

我曾尝试使用中国Encoding.GetEncoding("gb2312").GetString()方法,但它仍然返回相同的字符串问号它

+0

您需要使用'NVARCHAR(N)'列数据类型在SQL Server表来处理Unicode字符串像中国 – 2015-04-06 09:51:01

+0

当前列类型已经是NVARCHAR。即使我检查该列中存储的值它们是一样的,我的问题共享:( – sharpthnkr 2015-04-06 10:43:19

+0

如果在数据库中的列数据具有'??? ..'那么你必须纠正保存在数据库中数据的应用程序。 – Sukanya 2015-04-06 11:05:09

回答

0

你需要确保你使用的整个正确的编码。这可能是因为在某些时候文本编码为ASCII,在这种情况下,任何非英语字符(加数字以及一些标点符号)将被转换为?

尝试使用UTF-16无处不在。根据方言,您可能需要查看UTF-32。有关其他信息,请参阅UTF8, UTF16, and UTF32

+0

感谢您在数据库中做出响应我可以看到奇怪的字符而不是chines。数据库列类型是NVARCHAR – sharpthnkr 2015-04-06 10:44:30

+0

也为了让你知道我使用ADO.NET来检索信息,然后LINQ to SQL来填充信息。当我通过在设计器中调试来检查数据表时,它仍然没有正确的信息返回相同的字符串,如上面的共享字符串:( – sharpthnkr 2015-04-06 10:46:17

相关问题