|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
18.11.2013, 13:26 | #1 |
Форумчанин
Регистрация: 30.12.2010
Сообщений: 280
|
Кодировка строки
Здравствуйте.
Мне в проекте, в строках нужно использовать русские и английские буквы. Проект кроссплатформенный (Win, Lin, Android, IOS). Посоветуйте пожалуйста как мне кроссплатформенно использовать строки? Спасибо за внимание. |
18.11.2013, 15:37 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Юникодом делай.
I'm learning to live...
|
18.11.2013, 20:07 | #3 |
Форумчанин
Регистрация: 30.12.2010
Сообщений: 280
|
Понятно что юникодом, но каким способом?
Вот я сделал с помощью std::wstring и wchar_t, в CodeBlocks во вкладке encoding установил utf-8. В общем работает, но будет ли работать на других платформах? И потом мне ещё нужно будет отправить этот wstring сокетом по сети и на другом компе, возможно с другой ОС с помощью того же wstring отобразить. Подойдёт ли мне wstring или нужно будет использовать что-нибудь другое? |
18.11.2013, 20:22 | #4 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Цитата:
I'm learning to live...
|
||
18.11.2013, 23:48 | #5 |
Участник клуба
Регистрация: 23.12.2010
Сообщений: 1,129
|
Я бы utf-8 использовал. Он на всех перечисленных платформах должен работать из коробки (кроме винды, afaik). Для windows придется преобразовывать в utf-16 при необходимости.
Для перекодировки можно взять вот эту либу - http://utfcpp.sourceforge.net/ она небольшая и умеет все что нужно. Ну или свою пару функций набросать. |
19.11.2013, 20:17 | #6 |
Форумчанин
Регистрация: 30.12.2010
Сообщений: 280
|
Спасибо всем за помощь. Попробую utf-8.
С кодировками в c++ никогда не работал, поэтому напишу что я собираюсь сделать. Будет сервер на Линукс и клиент на (Win, Linux, IOS, Android). В проекте клиента перед отправкой данных на сервер произвожу перекодировку строки в utf-8 (если клиент на Windows, то наверное тоже utf-8 отправлять на сервер?). На сервере полученную строку, не производя никакой перекодировки отправляю всем клиентам. Если у клиента Windows произвожу перекодировку полученной строки в utf-16, иначе оставляю как есть. И вывожу полученную строку на экран. Правильно ли я все понял? Последний раз редактировалось Stilet; 20.11.2013 в 12:07. |
20.11.2013, 08:34 | #7 | |
Linux C++ Qt ARM
Старожил
Регистрация: 30.11.2008
Сообщений: 3,030
|
Цитата:
Дилетант широкого профиля.
"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс |
|
20.11.2013, 12:08 | #8 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Между прочем могу порекомендвать старенький base64. Раз он так популярен в е-мейле, почему в него не кодировать?
I'm learning to live...
|
|
20.11.2013, 12:46 | #9 | ||
Участник клуба
Регистрация: 23.12.2010
Сообщений: 1,129
|
Цитата:
Цитата:
Да, кстати, в зависимости от задачи перекодировка в utf-16 может и не понадобиться. Если нужно просто вывести данные на экран - можно установить utf-8 в качестве multibyte charset в windows. Последний раз редактировалось Stilet; 20.11.2013 в 14:23. |
||
20.11.2013, 14:13 | #10 |
Старожил
Регистрация: 19.08.2009
Сообщений: 2,119
|
gunsoy
Понятно что юникодом, но каким способом? использовать utf-8 Вот я сделал с помощью std::wstring и wchar_t, в CodeBlocks во вкладке encoding установил utf-8. В общем работает, но будет ли работать на других платформах? не будет. размер wchar_t разный на windows и на linux, поэтому данные будут бинарно несовместимы.
А вы почему со мной не соглашаетесь, у вас что, импотенция? (c) ACE Valery
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Кодировка строки | Alexandr5 | C# (си шарп) | 9 | 31.10.2013 17:52 |
Кодировка | ~VL@D~ | Windows | 6 | 28.04.2013 17:45 |
Задача на строки. Даны две строки. Определить можно ли из символов первой строки получить вторую строку.( написать подпрограммой и | ANTON1994 | Паскаль, Turbo Pascal, PascalABC.NET | 5 | 09.02.2013 14:07 |
Программа на языке "Ассемблер" - ввод строки, анализ длины строки, добавление точки в конец строки | Алексей_2012 | Помощь студентам | 1 | 05.04.2012 11:26 |
Кодировка | Predator199 | PHP | 0 | 17.03.2012 17:04 |