2013-04-05 2 views
4

Я работаю с базой данных Sqlite в приложении Windows 8. (0)
Проблема с турецким символом при вставке в базу данных.
Как исправить эту проблему. можешь мне помочь?
спасибо.
Легко прийти.не вставить турецкий символ Window 8 app to Sqlite

using (var db = new SQLite.SQLiteConnection(App.DbPath)) 
    db.Execute("Insert Into Stock (Name) Values('ŞşİıĞğ')"); 

я попробовать это, но результат -> ÞþÝýÐð

string a = "ŞşİıĞğ";  
string b = string.Empty;  
byte[] utf8Bytes = Encoding.UTF8.GetBytes(a);  
b= Encoding.UTF8.GetString(utf8Bytes, 0, utf8Bytes.Length);  

using (var db = new SQLite.SQLiteConnection(App.DbPath)) 
    db.Execute("Insert Into Stock (Name) Values('"+ b +"')"); 
+0

Показать свой код и рассказать людям, что вы пробовали до сих пор? Пожалуйста, прочитайте [FAQ] и [ask] –

+1

Если бы я должен был догадаться, я бы сказал, что ваша База данных не кодирует ваших символов так, как вы ожидаете. – Nolonar

+0

Является ли это проблемой dottless/dotted 'i', если это возможно? http://www.i18nguy.com/unicode/turkish-i18n.html –

ответ

3

Скорее всего, проблема заключается в том, что ваш столбец не может обрабатывать UTF-16 (Юникод) правильно (может быть клиент API). Самая безопасная ставка заключается в том, чтобы конвертировать в/из utf-8 на стороне клиента, а затем читать/записывать в базу данных.

System.Encoding.UTF8 имеет всю магию.

+0

Я попробовал это, но результат -> ÞþÝýÐð string a = "ŞşİıĞ" "; строка b = строка.Empty; byte [] utf8Bytes = Encoding.UTF8.GetBytes (a); b = Encoding.UTF8.GetString (utf8Bytes, 0, utf8Bytes.Length); Использование (var db = new SQLite.SQLiteConnection (App.DbPath)) db.Execute ("Вставить в значение запаса (имя)" ('"+ b +"') "); –

Смежные вопросы