Lipetsk *nix Association Forum Lipetsk *nix Association Forum
Новости:
 
*
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?
27 Ноября 2024, 10:06:09


Войти


Страниц: [1]   Вниз
  Печать  
Автор Тема: Юникод в SQLite и юникод в wide-функциях винапи  (Прочитано 13810 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Леголегс
Гуру
******

Карма: 18
Сообщений: 1006


Fedora 12 x86_64


Награды
« : 29 Декабря 2008, 12:18:59 »

Не кидайте тапками! SQLite - свободное ПО, так что тема - не оффтопик Улыбка
Вопрос состоит в следующем: UTF-16 в понимании мелкомягких - это такой-же UTF-16, что и в мире СПО или нет?
LPCWSTR - это, по определению, wchar_t *, но одинаково ли они обрабатываются? С порядком байт вроде нормально всё: и там и там в доках сказано "native", т.е. литлэндиан для x86. Но уверенности у меня до сих пор нет.
Записан

[ Мой FTP ftp://legolegs.homelinux.net ]
[ Репозиторий Fedora http://fedora.leschat.net/ ]
[ Репозиторий Ubuntu http://ubuntu.leschat.net/ ]
mini_root
Юзверь
**

Карма: -3
Сообщений: 62


Награды
« Ответ #1 : 29 Декабря 2008, 13:15:45 »

Не кидайте тапками! SQLite - свободное ПО, так что тема - не оффтопик Улыбка
Вопрос состоит в следующем: UTF-16 в понимании мелкомягких - это такой-же UTF-16, что и в мире СПО или нет?
LPCWSTR - это, по определению, wchar_t *, но одинаково ли они обрабатываются? С порядком байт вроде нормально всё: и там и там в доках сказано "native", т.е. литлэндиан для x86. Но уверенности у меня до сих пор нет.

Эксперимент тебе поможет!

Я общался с SQLite исключительно в управляемых версиях(.Net/Java) - никаких проблем с кодировками вроде не видел. Да, UTF-8/16 везде должны быть одинаковыми, как впрочем и windows-1251 и koi8-r. По крайней мере в жабе с перекодировкой проблем не возникало.

P.S. А в чем проблема-то?
Записан
Леголегс
Гуру
******

Карма: 18
Сообщений: 1006


Fedora 12 x86_64


Награды
« Ответ #2 : 29 Декабря 2008, 14:15:21 »

Без экспериментов всегда хочется обойтись, время ещё на них терять. В жабнетах наверняка общение с sqlite идёт через тысяча и один враппер и с перекодировками где надо, так что это не показатель, ибо пишу я на c++.
А проблема в том, что
1) UTF-8 в винде вообще нет
2) UTF-16 есть несколько разных версий, насколько я знаю
3) смущает, что в sqlite есть функция sqlite3_open16 и нету sqlite3_exec16. Не ясно, как оно себя поведёт.

PS отдельный луч поноса отправляется всем этим велосипедастам, что делают свои собственные реализации плюсовых строк, несовместимые с std::string.
Записан

[ Мой FTP ftp://legolegs.homelinux.net ]
[ Репозиторий Fedora http://fedora.leschat.net/ ]
[ Репозиторий Ubuntu http://ubuntu.leschat.net/ ]
RemDerBauer
Rebuild world
Глобальный модератор
*****

Карма: 14
Сообщений: 1886


Ubuntu forever


Награды
« Ответ #3 : 29 Декабря 2008, 14:30:16 »

Лучистый пирожок???)))

кто ЛОР седня читал, тот поймет)))
Записан

Мы говорим Linux, подразумеваем Ubuntu......
mini_root
Юзверь
**

Карма: -3
Сообщений: 62


Награды
« Ответ #4 : 29 Декабря 2008, 15:15:16 »

В жабнетах наверняка общение с sqlite идёт через тысяча и один враппер

Там движок БД совмещен сразу с драйвером ADO.NET/JDBC, и никаких врапперов...

Вот тебе про 8 и 16:

http://www.mail-archive.com/sqlite-users%40sqlite.org/msg37942.html

Вот еще про уникод:

http://www.nabble.com/UTF8-support--td20189753.html
Записан
Леголегс
Гуру
******

Карма: 18
Сообщений: 1006


Fedora 12 x86_64


Награды
« Ответ #5 : 29 Декабря 2008, 15:30:57 »

Цитировать
ADO.NET/JDBC
Это в моём понимании врапперы и есть Улыбка
За ссылки спасибо, почитаю.
Записан

[ Мой FTP ftp://legolegs.homelinux.net ]
[ Репозиторий Fedora http://fedora.leschat.net/ ]
[ Репозиторий Ubuntu http://ubuntu.leschat.net/ ]
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2011, Simple Machines

Valid XHTML 1.0! Valid CSS! Dilber MC Theme by HarzeM