こんにちは私は、ユーザーがデータを保存し、タミルフォントでデータを見ることができるWindowsアプリケーションを開発しました。私は 'Bamini'フォント(Tamilフォント)をインストールし、テキストボックスとdatagridviewをBaminiフォントに設定しました。私はタミル語でデータを保存して取り出すことができます。 「; j_ahを、電子」MySQLのDBに(私は設定されている、それは次のように保存されて、私が入力した場合は、「இந்தியா」テキストボックスにし、保存:C#:MYSQLデータベースからユニコード文字としてデータを印刷できません
問題は、私が入力したタミルデータを符号化して、たとえばデータベース に保存されています列の文字セットはutf8)。 これでデータを取得して印刷しようとすると、「இந்தியா」の代わりに「、e; j_ah」と表示されます。
誰でも私がここで間違っていることを教えてもらえますか?私は、文字列を挿入するために使用しています
コード:
textBox1テキストボックスの値として影響を受けた 'இந்தியா'(テキストボックスのフォントが 'Bamini' タミル語フォントに設定されているので)である
string insertdata = "INSERT INTO tamil (country) VALUES (@cnt)";
MySqlCommand cmd = new MySqlCommand(insertdata,connection);
connection.Open();
cmd.Parameters.AddWithValue("@cnt",textBox1.Text);
cmd.ExecuteNonQuery();
connection.Close();
データベース次の:
tablename: Tamil
Sno Country
1 ,e;j_ah
表STRU cture:
CREATE TABLE `tamil` (
`sno` int(11) auto_increment NOT NULL,
`Description` varchar(50) NOT NULL,
`Country` varchar(50) character set utf8 NOT NULL,
KEY `id_sno` (`sno)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ;
デバッグして、テキストボックスから取得している文字列に正しいデータがあることを確認しましたか?私は、文字列内の各文字のUTF-16値をログに記録することをお勧めします。たとえば、 'foreach(char c in text){Console.WriteLine(((ushort)c).ToString(" x4 ")); } ' –
次に、データをデータベースに保存するために使用しているコードを表示してください。 –
Unicode文字として使用する前に、おそらくDB列のバイトストリームをUTF-8デコードする必要があります。 – SBS