--}}
Новая тема
Вы не можете создавать новые темы.
Т.к. вы неавторизованы на сайте. Пожалуйста назовите себя или зарегистрируйтесь.
Список тем

Два файла, оба в UTF-8, но отображаются В БЛОКНОТЕ по-разному!

Нужен совет (поиск решения проблемы. не для купли-продажи)
11
22
С друзьями на NN.RU
В социальных сетях
Поделиться
mik-mak
17.04.2014
В одном:
<SURNAME>Cачкова</SURNAME>
<NAME>Наталья</NAME>

В другом:
<SURNAME>Cачкова</SURNAME>
<NAME>Наталья</NAME>

(Тама "С" на английской раскладке, но это дела не меняет :))

Понятно, что написано одно и то же, но почему во втором случае коды символов вместо, собсна, символов?
Предполагал, что есть некий маркер в самом начале файла, посмотрел в hex-редакторе - нету тама ничего :(

ЗЫ.. Второй файл сделан под WINE-ом на Ubuntu 12.04LTS, первый на Винде..
Лучше принтскрином выложить...
mik-mak
17.04.2014
ХеХе..С попыткой посмотреть на UTF-ные коды ничё не прокатило.. Оно тут их нормальными буквами кажет!
mik-mak
17.04.2014
Вот так оно смотрится..
выложи файлы.
mik-mak
17.04.2014
Пока не могу, так как тама всякие личные данные :)) Позже, если не решится вопрос, сделаю тестовый файлик и выложу..
Мне п понять, куда смотреть.. Пока придумал, открывать файл мозиллой и сохранять его им же.. Тогда все коды нормально меняются на русские буквы! Но такое "решение" уж очень глобальный костыль %)
тогда сохраняй не в уникоде.
mik-mak
17.04.2014
В смысле? В какой момент сохранять не в юникоде? Создаёт файло некая софтина ARM_FSS, она не спрашивает, в чём его делать..
т.е. попытка завести отправку данных в сосцстрах под вайном? подозреваю, что файл создается в кодировке локали. сменить на 1251 для опытов?
mik-mak
17.04.2014
Хм.. Спасиб.. Будем посмотреть!
mik-mak
17.04.2014
Кстати, файл создаётся в UTF-8.. Во всяком случае, об этом говорит Notepad2, когда открываешь файлик им.. Или это ещё ничего не значит? Коды на символы он (нотепад) не заменяет даже если добавить сигнатуру в начало файла..
Esik
17.04.2014
Первое, что бросилось в глаза - разная длина файлов и разный способ завершать строки. Во дном случае Это <CR> + <Lf> в другом - только перевод строки, без возврата каретки.
Не знаю, насколько это критично.
mik-mak
17.04.2014
Насколько я понял, это некритично.. Замена Линуксового LF на Виндовый CR+LF не меняет сути :(
rh9
18.04.2014
подозреваю что у вас utf-16

перед кодами добавить &#x

"А" => "410;", "а" => "430;",
"Б" => "411;", "б" => "431;",
"В" => "412;", "в" => "432;",
"Г" => "413;", "г" => "433;",
"Д" => "414;", "д" => "434;",
"Е" => "415;", "е" => "435;",
"Ё" => "401;", "ё" => "451;",
"Ж" => "416;", "ж" => "436;",
"З" => "417;", "з" => "437;",
"И" => "418;", "и" => "438;",
"Й" => "419;", "й" => "439;",
"К" => "41A;", "к" => "43A;",
"Л" => "41B;", "л" => "43B;",
"М" => "41C;", "м" => "43C;",
"Н" => "41D;", "н" => "43D;",
"О" => "41E;", "о" => "43E;",
"П" => "41F;", "п" => "43F;",
"Р" => "420;", "р" => "440;",
"С" => "421;", "с" => "441;",
"Т" => "422;", "т" => "442;",
"У" => "423;", "у" => "443;",
"Ф" => "424;", "ф" => "444;",
"Х" => "425;", "х" => "445;",
"Ц" => "426;", "ц" => "446;",
"Ч" => "427;", "ч" => "447;",
"Ш" => "428;", "ш" => "448;",
"Щ" => "429;", "щ" => "449;",
"Ъ" => "42A;", "ъ" => "44A;",
"Ы" => "42B;", "ы" => "44B;",
"Ь" => "42C;", "ь" => "44C;",
"Э" => "42D;", "э" => "44D;",
"Ю" => "42E;", "ю" => "44E;",
"Я" => "42F;", "я" => "44F;"


говорят помогает:
echo "сюда вставить непонятный текст" | perl -Mutf8 -e 'binmode STDOUT,":utf8"; while(<>){s/&#x([0-9A-F]+);/chr hex $1/ge;print}'
mik-mak
18.04.2014
Так оно тама уже стоит перед кодами (на скриншоте выше)!
Кстати, CR LF = 0D0A
На первом скрине мы видим CR LF как их понимает редактор, на втором мы видим то же в закодированном виде = CR...
В начале файла содержится unicode-header - несколько непечатаемых символов, они-то и дают редактору понять, что в файле юникод. без них по умолчанию открывается в другой кодировке
mik-mak
18.04.2014
Дык.. Эт я уже понял.. Тока в hex-editor-е их невидно!
Esik
18.04.2014
А чем ни будь другим?
Редактором, который не понимает, что существуют "непечатаемые символы"?

... Хотя не понимаю, почему Hex-Editor их таки не видит... его-то всегда считал образцом в этом плане.
mik-mak
18.04.2014
Я так понимаю, что их тама и нет! Если я сохраняю файл, как UTF-8 с сигнатурой, то в начало файла эта самая сигнатура и пишется, и HEX-редактор её видит.. Тока это результат отображения файла не меняет %(
Скиншот с хекс редактора дайте... с обеих файлов.
Не понятна ваша проблема.
Судя по всему, файлы не отображаются по-разному, они и есть разные.

Т.е. программа, формирующая файл, в первом случае просто сохранила его в кодировке UTF-8, а во втором случае все символы, которые сичтаются не входящими в стандартный диапазон 0x00-0x7F были представленны в виде numeric character reference entities, т.е. в виде &#xUnicodeCode;
Тогда второй файл - на самом деле не UTF-8, а ASCII. В нем нет ни одного символа выходящего за границы 0x00 - 0x7F.

А ваш редактор скорее всего "слишком умный" и показывает то, что прочитал в заголовке XML файла.
Новая тема
Вы не можете создавать новые темы.
Т.к. вы неавторизованы на сайте. Пожалуйста назовите себя или зарегистрируйтесь.
Список тем
Последние темы форумов
Форум Тема (Автор) Последний ответ Ответов