Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.01;
Скачать: CL | DM;

Вниз

Преобразование строк 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 вся ветка

Текущий архив: 2006.01.01;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.029 c
2-1134650804
fast2
2005-12-15 15:46
2006.01.01
Как создать директорию вместе с родительскими директориями?


14-1134158403
VirEx
2005-12-09 23:00
2006.01.01
Mail в Php


14-1133982665
Kerk
2005-12-07 22:11
2006.01.01
Я не люблю праздники. А вы?


9-1122506838
Алгоритм
2005-07-28 03:27
2006.01.01
Самосборка паззлов Возможна ли ?


2-1134452868
Ольга
2005-12-13 08:47
2006.01.01
Переименовать xls-файл, не сохраняя его на диске