|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
30.01.2017, 11:02 | #11 | ||
Форумчанин
Регистрация: 10.02.2014
Сообщений: 526
|
Vapaamies, спасибо за примеры, но что-то не то у меня получается (код скопировал полностью). Пример с "Фрагмент.txt".
Программа выдаёт Цитата:
а 2cyr (исходная кодировка: Windows-1251; отображается как: UTF-16) декодирует как Цитата:
|
||
30.01.2017, 11:48 | #12 |
Ваш К. О.
Участник клуба
Регистрация: 26.12.2012
Сообщений: 1,774
|
У меня так же. Поменяйте первое условие в while на (P^ < #$80). Раскодируемый кусок увеличится, но совпадения не будет. 2cyr наверняка использует какой-то интеллектуальный алгоритм, а я просто подсунул данные без всякого раскодирования. Как они там лежат -- так и выводятся. Фиг знает, из-за чего перестановка. Смотрите отладчиком коды символов в Source (UTF-16), сверяйтесь по стандарту Unicode, что они обозначают. Моя задача -- показать путь, далее -- самостоятельно.
|
30.01.2017, 12:18 | #13 |
Форумчанин
Регистрация: 10.02.2014
Сообщений: 526
|
Я правильно понимаю, что у Вас просто берётся символ и по определённому алгоритму меняется? Меня смущает, что, например, 1 в закодированной строке совпадает с разными символами...
|
30.01.2017, 12:34 | #14 |
Ваш К. О.
Участник клуба
Регистрация: 26.12.2012
Сообщений: 1,774
|
Никакого алгоритма нет. Исходя из опыта работы с кодировками, я основывался на допущении, что у вас строка в windows-1251 программно всунута в UTF-16. Для раскодирования надо проделать обратную операцию.
Поскольку исходник -- в UTF-8 (сработало автоопределение в Far и PSPad), вначале я раскодирую UTF-8 в UTF-16, а потом интерпретирую эти данные как 1251 безо всякого перекодирования -- просто через указатель на те же данные. Походу оказалось, что ваш UTF-16 -- Big Endian. Добавил перестановку байт, получилось: Код:
|
30.01.2017, 13:39 | #15 |
Форумчанин
Регистрация: 10.02.2014
Сообщений: 526
|
Даже не слышал про такое... Спасибо большое! Здорово!
Решил воспользоватся Яндексом, чтоб хоть узнать что это такое. Увидел ссылку на НОУ ИНТУИТ. Решил глянуть где там такое объясняют. "Ассемблер в Linux для программистов на C". Но, кажется, смысл я уловил. Это когда байты задом наперёд идут? А как-нибудь можно программно понять: стандартная кодировка или такая?.. Последний раз редактировалось Ship_1; 30.01.2017 в 14:04. |
30.01.2017, 22:32 | #16 | ||
Ваш К. О.
Участник клуба
Регистрация: 26.12.2012
Сообщений: 1,774
|
Цитата:
Цитата:
Попутно решил проблему с CodeText.txt. Оказалось, что читал его не полностью. Это окончательный вариант кода. Задача решена, больше исправлений не будет. Код:
|
||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
utf-8 -> windows-1251 | Lihosvet | Visual C++ | 10 | 03.09.2022 16:37 |
UTF-8 to WINDOWS-1251 | Zanooda | Общие вопросы Delphi | 9 | 20.07.2011 08:13 |
php перекодировка из utf-8 в windows-1251 | world12_tk | PHP | 3 | 25.04.2010 22:55 |
UTF-8 в Windows-1251 - нужна функция | motorway | PHP | 3 | 04.07.2009 15:28 |