Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.09.2009, 13:12
Новичок на форуме
Отправить личное сообщение для UnEpicFail Посмотреть профиль Найти все сообщения от UnEpicFail
 
Регистрация: 28.09.2009
Сообщений: 8

utf-8 to utf-16
Добрый день всем пользователям данного сайта.
У меня есть вопрос, ответ на который, google не стал мне давать. Хотя, возможно, я не правильно его спрашивал. )))

Проблема заключается в необходимости изменения кодировки "кирилици" перед отправкой HTTP запроса, точнее не совсем запроса, но это в общем не важно. В общем проблема в том что страница в кодировке UTF-8, а сторона принимающая HTTP запрос отображает полученные данные в UTF-16. Ни кодировку страницы ни кодировку, ожидаемую сервером, я сменить к сожалению не в силах((( Единственное что я могу это сменить кодировку перед отправкой HTTP запроса, но как это сделать я не знаю.
Жду помощи и заранее спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 28.09.2009, 15:27
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

а)вы ошиблись разделом форума
б)ваше сообщение бессвязно
я так и не понял что и откуда у вас идет, и что вы можете поменять, а что нет
если я правильно понял, то вам стоит выставить в передаваемых данных правильный header типа файла
в PHP это делается так(вставить в начале файла, до какого-либо вывода):
header('Content-type: text/html; charset=utf-8');
Ответить с цитированием
  #3 (permalink)  
Старый 28.09.2009, 16:41
Новичок на форуме
Отправить личное сообщение для UnEpicFail Посмотреть профиль Найти все сообщения от UnEpicFail
 
Регистрация: 28.09.2009
Сообщений: 8

Извиняюсь за пост не в том месте, и за не непонятный контент поста.
Как перенести пост я не знаю (возможно модеры помогут ), так что попробую просто уточнить и объяснить в чем заключался мой вопрос.

Я имею:
Сервер с базой, назовем его (S1)
"Портал", который видит клиент,назовем его (SUI)
HTTP сервер, принимающий запросы от клиента, пусть будет (S2)

Методика такая:
SUI получает данные хранящиеся в базе S1, данные приходят в кодировке UTF-8, после непродолжительной обработки SUI отправляет данные на сервер S2, S2 отображает полученные данные в кодировке UTF-16. С латиницей при таком раскладе все в порядке, а вот кириллица рассыпается в кашу. Вот я и хочу перед отправкой на сервер S2 перевести строку из UTF-8 в UTF-16. Подсказка с использованием PHP безусловно интересна, но к сожалению для решения данной проблемы мне доступен только js.
Ответить с цитированием
  #4 (permalink)  
Старый 28.09.2009, 16:49
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

В JavaScript нет инструментов для работы с кодировкой.
Ответить с цитированием
  #5 (permalink)  
Старый 28.09.2009, 17:05
Новичок на форуме
Отправить личное сообщение для UnEpicFail Посмотреть профиль Найти все сообщения от UnEpicFail
 
Регистрация: 28.09.2009
Сообщений: 8

Сообщение от B~Vladi Посмотреть сообщение
В JavaScript нет инструментов для работы с кодировкой.
А вот это вы зря.

вот примет перевода кириллицы в строке в UTF к примеру

function toUTF(string)
{
    string = string.replace(/\r\n/g,"\n");
    var utftext = "",h0,h1,h2;
    for (var n = 0; n < string.length; n++)
    {
        var c = string.charCodeAt(n);
        if (c < 128)
        {
            utftext += String.fromCharCode(c);
        }
        else if((c > 127) && (c < 2048))
            {
                h1=((c >> 6) | 192).toString(16);
                if (h1.length==1) h1='0'+h1;
                h0=((c & 63) | 128).toString(16);
                if (h0.length==1) h0='0'+h0;
                utftext += '%'+h1+'%'+h0;
            }
            else
            {
                h2=((c >> 12) | 224).toString(16);
                if (h2.length==1) h2='0'+h2;
                h1=(((c >> 6) & 63) | 128).toString(16);
                if (h1.length==1) h1='0'+h1;
                h0=((c & 63) | 128).toString(16);
                if (h0.length==1) h0='0'+h0;
                utftext += '%'+h2+'%'+h1+'%'+h0;
            }
        }
    return utftext;
}


я просто не силен в структуре UTF-16((( так бы уже давно сам написал.

Последний раз редактировалось Octane, 28.09.2009 в 17:16. Причина: используйте теги [html] и [js] для оформления кода
Ответить с цитированием
  #6 (permalink)  
Старый 28.09.2009, 17:21
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от UnEpicFail
А вот это вы зря.
Как же зря?! Вы же сами привели пример кода, но это не встроенные возможности.
Сообщение от UnEpicFail
я просто не силен в структуре UTF-16((( так бы уже давно сам написал.
Гугл и вики не помогли?!
Ответить с цитированием
  #7 (permalink)  
Старый 28.09.2009, 17:26
Новичок на форуме
Отправить личное сообщение для UnEpicFail Посмотреть профиль Найти все сообщения от UnEpicFail
 
Регистрация: 28.09.2009
Сообщений: 8

гуглил конечно))) примеров готовых скриптов не нашел((( в педивикии немного о структуре UTF-16, но либо у меня руки не от туда растут, либо просто уже устал, ну "не выходит у меня каменный цветок" ))) в общем буду надеяться что кто то уже столкнулся с подобной проблемой и нашел ее решение.
Ответить с цитированием
  #8 (permalink)  
Старый 28.09.2009, 18:21
Новичок на форуме
Отправить личное сообщение для UnEpicFail Посмотреть профиль Найти все сообщения от UnEpicFail
 
Регистрация: 28.09.2009
Сообщений: 8

вроде нашел алгоритм, проверяю работоспособность.
Ответить с цитированием
  #9 (permalink)  
Старый 28.09.2009, 20:33
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

а каким образом вы пересылаете данные на S2?
может статся, что там есть способ задания кодировки пересылаемых данных
Ответить с цитированием
  #10 (permalink)  
Старый 30.09.2009, 10:41
Новичок на форуме
Отправить личное сообщение для UnEpicFail Посмотреть профиль Найти все сообщения от UnEpicFail
 
Регистрация: 28.09.2009
Сообщений: 8

к сожалению S2 для меня "черная коробочка" властью что либо менять там я не наделен((( это продукт сторонней компании.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Из WIN в UTF AlexBel Общие вопросы Javascript 3 23.08.2008 21:56