asp.net从文本框中获取阿拉伯语文本

时间:2018-03-18 10:15:24

标签: c# asp.net textbox arabic

我有一个包含两个阿拉伯语列first_name和last_name的表。 如果我尝试从数据库中获取列并在textBoxes中显示它完美, 但是如果我尝试在textBox中编写阿拉伯语文本并通过以下代码获取服务器中的文本:txtArabicFirstName.Text文本出现错误,如Gibberish

这是我在aspx页面中的第一行:

请帮忙!

3 个答案:

答案 0 :(得分:0)

你实际上没有发布代码,这没有帮助,但我相信你的问题可能是数据库,更准确地说是如何存储数据。

如果是这种情况,有几种方法可以解决问题:

<强> 1。将排序规则切换为支持阿拉伯字符集的排序规则。

您可以找到支持它们的排序规则,但运行以下查询:

SELECT name, description 
FROM fn_helpcollations() 
WHERE name LIKE 'Arabic%'

然后转到您的表格或数据库设置并切换到您想要的类型。

另一个选项可能会更容易,具体取决于您的问题发生的位置以及您希望支持的字符集数量

<强> 2。使用NVARCHAR数据类型代替VARCHAR

NVARCHAR允许您在数据库中存储unicode字符(如阿拉伯语脚本)。请注意,对于您存储的每个字符,它将使用2个字节而不是1个字节,但您几乎可以存储任何您可能想要存储的内容。

答案 1 :(得分:0)

尝试在web.config中更改请求和响应的编码,如下所示:

<configuration>
 <system.web>
  <globalization
    fileEncoding="utf-8" 
    requestEncoding="utf-8" 
    responseEncoding="utf-8"
    culture="en-US"/>
 </system.web>
</configuration>

仅限一页

<configuration>
    <location path="yourfile.aspx">
        <system.web>
            <globalization requestEncoding="utf-8" responseEncoding="utf-8" />
        </system.web>
    </location>
<configuration>

答案 2 :(得分:0)

除了Butler1233提到的内容之外,对于Unicode字符使用前缀&#39; N&#39; ,例如下面的阿拉伯字符。

INSERT INTO table_name (first_name, last_name)
VALUES (N'arabic_first_name', N'arabic_last_name');