将日文字符写入表格

时间:2015-12-01 07:33:05

标签: c# sql-server

尝试将字符串保存到我的数据库表中时,它们会被保存为问号。

我已经检查了这个问题(还有更多): Why is sql server storing question mark characters instead of Japanese characters in NVarchar fields?

不幸的是,没有任何结果对我有任何影响。 我在开始时将Collat​​ion设置为“SQL_Latin1_General_CP1_CI_AS”,但稍后我将其更改为“Japanese_CI_AS”。仍然没有变化。

我的代码看起来与此类似(抱歉没有真正的代码,它在我的笔记本电脑上):

string query = "INSERT INTO ArticlesTBL (ArticleTitle, ArticleContent, 

ArticleType, ArticleImg, ArticleBrief,  ArticleDateTime, ArticleAuthor, ArticlePublished, ArticleHomeDisplay, ArticleViews)";
query += " VALUES (@ArticleTitle, @ArticleContent, @ArticleType, @ArticleImg, @ArticleBrief, @ArticleDateTime, @ArticleAuthor, @ArticlePublished, @ArticleHomeDisplay, @ArticleViews)";

SqlCommand myCommand = new SqlCommand(query, myConnection);
myCommand.Parameters.AddWithValue("@ArticleTitle", ArticleTitleTextBox.Text);
myCommand.Parameters.AddWithValue("@ArticleContent", ArticleContentTextBox.Text);
// ... other parameters
myCommand.ExecuteNonQuery();

ArticleContent 将是包含日文字符的字符串。

我的数据库是在MS SQL Server 2014上创建的,我正在使用Visual Studio 2015来编写这个小应用程序。

1 个答案:

答案 0 :(得分:3)

您必须使用支持nvarchar数据类型的Unicode。根据{{​​3}}:

  

如果存储反映多种语言的字符数据,请始终使用Unicode数据类型(nchar,nvarchar和ntext),而不是非Unicode数据类型(char,varchar和text)。

如果您想使用完整的UTF-8代码页,则需要使用nvarchar数据类型。