gpt4 book ai didi

c# - ASP.net:问号而不是阿拉伯文本

转载 作者:可可西里 更新时间:2023-11-01 08:25:09 24 4
gpt4 key购买 nike

我正在使用 Visual studio 2015 Asp.net C#MySql 工作台。

我有两个问题:

  1. 在将阿拉伯语数据插入数据库(MYSQL workbench)时,它出现问号 ?????? 我找到解决方案要求我更改数据类型从varchar转nvarchar然后在前面加上大写的N阿拉伯语字符串 (INSERT INTO TableName (ColumnName) values(N’ArabicText’)) 如何在此代码中应用它?我试图在中添加 N不同的地方但没有用?
  2. 当我在 MySQL 中确定数据类型为 NVARCHAR(45) 时工作台,程序出现消息:change applied successfully,然而,当我打开表格时,我发现 varchar(45) 又返回了。

     string query = "UPDATE learningobjects SET level=?level, subjectName=?    subjectName WHERE ID=?ID";
    using (MySqlCommand cmd = new MySqlCommand(query, cn))
    {
    cmd.CommandText = query;
    cmd.Parameters.AddWithValue("?level", Level);
    cmd.Parameters.AddWithValue("?ID", lblid.Text);

    cmd.Parameters.AddWithValue("?subjectName", txtsubject.Text);

最佳答案

MySQL不是SQL Server,所以解决方法略有不同,但产生问号的原因是一样的。您看到的是一个字符转换错误,它可能发生在您的请求/响应链中的任何一点。

Microsoft SQL Server 引入了 NCHARNVARCHARNTEXT 来处理 unicode。这些都是 Microsoft 特定的关键字,因此它们不适用于 MySQL。现在,MySQL 应该默认设置为处理 unicode 字符集,但以防万一您可能想查看这些链接:

为了安全起见,请确保您的连接字符串指定了字符集(如果 MySQL 的其余部分设置为 UTF 应该没问题)

最后,还有一点不容忽视,您的表单也需要符合 UTF 格式。 ( ref )

<form action="demo_form" accept-charset="utf-8">
</form>

也可以用 ASP.NET MVC 像这样指定:

@using (Html.BeginForm(null, null, FormMethod.Post, new { accept_charset = "utf-8" })) {
<!-- content of form -->
}

我将从数据如何进入您的数据库开始,然后看看数据放入后发生了什么。

关于c# - ASP.net:问号而不是阿拉伯文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37990853/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com