关于sql服务器存储印地语管理devnagari字体的问题.当我尝试插入值时,它显示方形框



我正在使用NLP(自然语言处理)模块。为此,我需要在SQL Server 2005表中存储印地语字符。为此,我使用c#作为前端编程。

首先,我需要知道SQL Server是否在表中存储印地语字符。因此,我直接使用c#尝试使用插入查询将印地语字符存储到表中,但它在数据库中存储方形框。

我正在使用Mangal devnagri字体的印地语字体。

表列的数据类型为nvarchar(50)。排序是默认的,即。"SQL_Latin_General_……"。我已经尝试了太多的谷歌从许多天,但我不能找到一个满意的帮助。

我假设您在SQL Server Management Studio中看到了方框。这可能是由于在那里显示时使用了错误的字体,而不一定是存储数据的问题。

当您从应用程序中查询DB并读取值时,您应该得到正确的unicode表示形式,这样就不会丢失任何信息。

确保您在参数化查询中作为nvarchar传递数据(如果您传递文字字符串,请使用"N"作为前缀,例如:SET @s = N'My String')。

您必须使用另一种排序方式。尝试为印地语字符指定一个。如果找不到可用的,请使用通用的unicode/utf-8格式。我没有使用MSSQL,所以你必须自己找到正确的设置(或者等待另一个回复)。对于mySQL,我会使用utf8_general_ci排序。将排序规则设置为"latin"本质上意味着它将能够容纳标准拉丁字符(例如A-Z)以及一些变体,如ä, ó或û,但它很可能无法接受许多非拉丁字符。

最新更新