Forum Webscript.Ru
Общие => Веб-технологии => Тема начата: от 14 Июля 2002, 00:15:09
-
Тут большие баталии были с нетскейпом и есплорером...
Не принимая ничью сторону, вопрос: понимает ли нетскейп unicode? В частности, функция escape просто переводит строку в набор ее кодов в DOS-кодировке (кажется, но не unicode точно). Дело в том, что у меня апплет читает данные с сервера и выводит их в ListBox (и TextArea, неважно - явовские компоненты). В експлорере вск ОК, а в нетскейпе выводятся странные закорлючки :) Если выводить строку, заданную в апплете в виде констатны, все работает нормально. Очень подозреваю unicode.
-
Понимает
Ты уверен, что именно unicode выводишь?
Поясняю - в unicode сначала идет Latin1 (закорючки вот те) , но Microsoft Win шрифты патчились специально, чтобы заменить их на русские символы кодировки cp1251. т.е если ты наберешь в cp1251 оно будет читаться по русски, хоть и не является unicode (это в IE)
А NN при этом возмет правильный шифт и покажет так как надо - Latin1
Какие там коды ? Точно из 5ой страницы?
Смотри:
http://cad.kiev.ua/~malvin/prj/chars/chars4.c
if(a==\'#\')
{i=0;
scanf("%u;",&i);
if(i==0) printf("");
else putchar((char)i);
}
Это специально для исправления такого "псевдоюникода" - когдато FronPage очень любил его вместо русских букв сохранять а в NN тогда знаки вопроса показывались, хотя в IE - все ок.
-
Прошу прощения, что отвечаю не сразу - доступа не было.
Я вывожу не в Unicode, это Java хранит строки в Unicode. Выяснилось 2 вещи насчет нетскейпа: во-первых, Java в нем нужно специально русифицировать, а во-вторых, он, почему-то, при скачивании данных урезает коды символов на 380h. Почему, не знаю. После русификации и прибавления 380h к кодам все заработало, однако с Unicode я до сих пор не понимаю. Насколько я знаю, под русский алфавит отведены символы с кодами 400h-4FFh. В експлорере эти символы выводятся нормально, а в нетскейпе - нет.
В частности, такой скриптец:
В експлорере он делает то, что положено, а в нетскейпе - не выводит ничего. Если будете пробовать, j - старший разряд, потом k, потом l, - определяют начальный символ в выводимой последовательности.