Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2006.01.01;
Скачать: [xml.tar.bz2];

Вниз

Преобразование строк UNICODE.   Найти похожие ветки 

 
Владислав ©   (2005-10-25 11:47) [0]

Приветствую, мастера.

Суть проблемы в следующем.

Есть сервис, который получает данные из некоего COM сервера в виде строк UNICODE. После получения этих строк, они обрабатываются, как бинарные данные (никаких преобразований не делается). Если точнее, строки пишутся в поток.
После получения всех необходимых данных от COM сервера, поток, в котором сохранены данные, отправляется через сокет клиенту, написанному на perl на сервере linux. Поток также отправляется без каких либо преобразований. Данные, записанные в поток, я проверял. Ничего необычного. Строки, представленные двубайтовыми символами.

Далее, perl клиент обрабатывает поток, извлекает нужные данные, выполняет нужные ему действия.

Проблема в том, что строки на русском языке нечитаемы на сервере linux. При попытке преобразовать строки на perl клиенте в ucs2 и utf-16 big endian, можно прочесть часть русских символов, а часть остается нечитаема.

Возможно изложил немного сумбурно. Если этой информации недостаточно для локализации проблему, буду признателен, если натолкнете на мысль, какую дополнительную информацию нужно дать.

А вопрос, собственно, такой. Какие изменения я могу сделать в сервисе, или какие изменения нужно сделать в клиенте, чтобы в итоге информация была читаема?

Спасибо за любые советы.


 
clickmaker ©   (2005-10-25 12:17) [1]

а перлу нужен именно уникод?


 
Владислав ©   (2005-10-25 12:20) [2]

Перлу не нужен именно юникод.
Но меня терзают смутные сомнения при мысли преобразовывания информации в однобайтовые строки.


 
clickmaker ©   (2005-10-25 12:22) [3]

почему? какая разница, что в сокет писать?


 
Владислав ©   (2005-10-25 12:24) [4]

Боюсь потерять информацию при перекодировании.


 
clickmaker ©   (2005-10-25 12:25) [5]

а там что, восточные языки используюцца? тогда причем тут русский?


 
Владислав ©   (2005-10-25 12:29) [6]

Надеюсь, что восточные не используются.
Эта сторона COM сервера никак не документирована.

Но и это еще не все. Сам сервис в сокет не долько данные передает, но и команды из сокета получает, и результат выполнения отправляет. Они кодированы в UNICODE. Не хотелось бы менять и все остальное при переходе на однобайтовые символы.


 
dmitry501 ©   (2005-10-25 12:48) [7]

Если ничего не хочется менять, то нужно настраивать клиентов linux на эту кодировку. Какая кодировка? Для двухбайтового юникода может надо просто поставить UTF-16?


 
Владислав ©   (2005-10-28 10:42) [8]

Спасибо всем ответившим.

"Перлист" не справился с перекодировкой.
Переписываем все для однобайтовой кодировки.


 
Alex Konshin ©   (2005-10-28 12:37) [9]

Перепиши на Java то, что было на perl. Проблема пропадет сама собой.


 
Владислав ©   (2005-10-28 12:50) [10]


> Alex Konshin ©   (28.10.05 12:37) [9]
> Перепиши на Java то, что было на perl. Проблема пропадет
> сама собой.


Спасибо за предложение, но, мягко говоря, это не моя забота. В данной ситуации мне проще изменить сервис.



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2006.01.01;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.026 c
5-1119899149
Radgar
2005-06-27 23:05
2006.01.01
Массив в компоненте


14-1133866105
Serg_r
2005-12-06 13:48
2006.01.01
ODBC драйвер


14-1134157029
Джо
2005-12-09 22:37
2006.01.01
Уважаемый Александр Панов!


3-1131699626
Rodnoy
2005-11-11 12:00
2006.01.01
Добавление пользователя в FireBird


2-1134822655
shoni
2005-12-17 15:30
2006.01.01
Кнопка перехода в полноекранный режым формы проекта





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский