2

私のasp.netアプリケーションには、Unicode形式(ヒンディー語-インド語)のデータがあります。このUnicodeテキストをmysql(5.1)データベースに挿入したいと思います。以下のC#コードを実行すると、テキストがデータベースに保存されますのように?????? 私のユニコードテキストの代わりに。しかし、phpmyadminを介してクエリを実行すると、正しく保存されました。

私はすでに db,table と特定のフィールド照合をutf8_general_ciとして設定しています。また、db 文字セットをutf8に設定します。

string mysql_query2 = "SET NAMES 'utf8'";
da.UpdateCommand = new MySqlCommand(mysql_query2, mysqlCon);
da.UpdateCommand.ExecuteNonQuery();


string para_text="हिन्दी भारत";
string para_outerxml="की राष्ट्रभाषा";
string status="जयपुर। हास्य-व्यंग्य";

string sql = "Insert into sand_box (para_text,para_outerxml,status) values('" + para_text + "','" + para_outerxml + "','" + status+")";
da.InsertCommand = new MySqlCommand(sql, mysqlCon);
da.InsertCommand.ExecuteNonQuery();

また、下の私の画像を参照してください。 (テーブル構造)

ここに画像の説明を入力

4

2 に答える 2

2

base-64次のようにキャストして挿入する必要があります

var langText = Convert.ToBase64String(Encoding.UTF8.GetBytes("yourtext"));

そして、フェッチしながら、次のように通常の文字列に変換します

var Normal=Encoding.UTF8.GetString(Convert.FromBase64String("your base64text"));

編集 1

だからあなたの挿入は次のようになるはずです

string mysql_query2 = "SET NAMES 'utf8'";
da.UpdateCommand = new MySqlCommand(mysql_query2, mysqlCon);
da.UpdateCommand.ExecuteNonQuery();


string para_text="हिन्दी भारत";
string para_outerxml="की राष्ट्रभाषा";
string status="जयपुर। हास्य-व्यंग्य";

string sql = "Insert into sand_box (para_text,para_outerxml,status) 
     values('" + Convert.ToBase64String(Encoding.UTF8.GetBytes(para_text)) + "','" 
             + Convert.ToBase64String(Encoding.UTF8.GetBytes(para_outerxml)) + "','" + 
              Convert.ToBase64String(Encoding.UTF8.GetBytes(status))+")";
da.InsertCommand = new MySqlCommand(sql, mysqlCon);
da.InsertCommand.ExecuteNonQuery();

編集 2

asp.net C#からアラビア語をmysqlに挿入する方法と同様の質問があります

于 2013-03-28T07:09:24.003 に答える
0

MySQL 5.1 は、Unicode データを格納するための 2 つの文字セットをサポートしています。

ucs2, the UCS-2 encoding of the Unicode character set using 16 bits per character.

utf8, a UTF-8 encoding of the Unicode character set using one to three bytes per character. 
于 2013-03-28T06:50:29.373 に答える