用于将非英文字符存储到 SQL 数据库的 HTML/ASPX 文本框

Posted

技术标签:

【中文标题】用于将非英文字符存储到 SQL 数据库的 HTML/ASPX 文本框【英文标题】:HTML/ASPX textbox to store non-english characters to SQL database 【发布时间】:2010-10-25 04:57:04 【问题描述】:

我在 .aspx 页面上有这个文本框,提交时它将文本框中输入的内容存储到 MS SQL 2005 中的 nvarchar 列中。

它工作正常,直到您尝试输入中文字符。 这些字符在数据库中被转换为问号 (?)。

如何将 中的非英语字符存储到数据库中?

【问题讨论】:

【参考方案1】:

主要是确保管道的每一步都支持国际字符;即 - 你在什么时候第一次看到“?” ?在aspx代码中?还是只有进入数据库表一次?

网页应该已经使用 UTF8 等编码,所以应该没问题 - 但是您在数据库中使用的是什么数据类型?它需要是 nchar/nvarchar(n)/nvarchar(max)(或在旧版本的 SQL Server 上为 ntext)。

【讨论】:

您好,谢谢。当我在文本框中粘贴一个汉字时,它看起来很好。但是在数据库中(当你从数据库读回一个aspx页面时)它们变成了????。我忘了提到它是 nvarchar(50),我编辑了这个问题,谢谢。 那么它什么时候第一次变成??? - 你看过提琴手吗?调试了 ASP.NET 应用程序?

以上是关于用于将非英文字符存储到 SQL 数据库的 HTML/ASPX 文本框的主要内容,如果未能解决你的问题,请参考以下文章

如何将非表数据导入 SQL Server Reporting Services?

如何将非通用排序列表保存到文件中,以便可以从文件中加载该排序列表?

SQL 用于各种数据库的数据类型:MySQLSQLsever

将非规范化文件中的数据加载到规范化表中

SQL 数据类型

csharp MVC属性,用于将非HTTPS请求重定向到HTTPS URI。