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

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

Нужен совет (поиск решения проблемы. не для купли-продажи)
5
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 файла.
Новая тема
Вы не можете создавать новые темы.
Т.к. вы неавторизованы на сайте. Пожалуйста назовите себя или зарегистрируйтесь.
Список тем
Последние темы форумов
Материнские платы на запчасти и не только

Материнские платы на запчасти и не только Материнские платы и другие комплектующие Отправка в регионы после оплаты. Транспортной...
Цена: 3 000 руб.

Принтер лазерный HEWLETT PACKARD HP-6L

Принтер лазерный HEWLETT PACKARD HP-6L Отправка в регионы после оплаты. 3штуки БУ. Внешний вид из магазина простояли на складе...
Цена: 4 500 руб.

Оперативная память Corsair XMS3 CMX8GX3M2A1600C9

Оперативная память Corsair XMS3 CMX8GX3M2A1600C9 Отправка в регионы после оплаты. Продаются сразу обе. Цена за обе 2000 руб....
Цена: 1 000 руб.

Сетевой фильтр APC Surge Arrest

Сетевой фильтр APC Surge Arrest для радиолюбителя.и не только Отправка в регионы после оплаты. ЦЕНА 3000 руб. В рабочем состоянии....
Цена: 3 000 руб.