![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 | ||
Форумчанин
Регистрация: 10.02.2014
Сообщений: 526
|
![]()
Vapaamies, спасибо за примеры, но что-то не то у меня получается (код скопировал полностью). Пример с "Фрагмент.txt".
Программа выдаёт Цитата:
а 2cyr (исходная кодировка: Windows-1251; отображается как: UTF-16) декодирует как Цитата:
|
||
![]() |
![]() |
![]() |
#12 |
Просветитель
Участник клуба
Регистрация: 26.12.2012
Сообщений: 1,844
|
![]()
У меня так же. Поменяйте первое условие в while на (P^ < #$80). Раскодируемый кусок увеличится, но совпадения не будет. 2cyr наверняка использует какой-то интеллектуальный алгоритм, а я просто подсунул данные без всякого раскодирования. Как они там лежат -- так и выводятся. Фиг знает, из-за чего перестановка. Смотрите отладчиком коды символов в Source (UTF-16), сверяйтесь по стандарту Unicode, что они обозначают. Моя задача -- показать путь, далее -- самостоятельно.
В разработке: воспроизводственный контур ИТ
|
![]() |
![]() |
![]() |
#13 |
Форумчанин
Регистрация: 10.02.2014
Сообщений: 526
|
![]()
Я правильно понимаю, что у Вас просто берётся символ и по определённому алгоритму меняется? Меня смущает, что, например, 1 в закодированной строке совпадает с разными символами...
|
![]() |
![]() |
![]() |
#14 |
Просветитель
Участник клуба
Регистрация: 26.12.2012
Сообщений: 1,844
|
![]()
Никакого алгоритма нет. Исходя из опыта работы с кодировками, я основывался на допущении, что у вас строка в windows-1251 программно всунута в UTF-16. Для раскодирования надо проделать обратную операцию.
Поскольку исходник -- в UTF-8 (сработало автоопределение в Far и PSPad), вначале я раскодирую UTF-8 в UTF-16, а потом интерпретирую эти данные как 1251 безо всякого перекодирования -- просто через указатель на те же данные. Походу оказалось, что ваш UTF-16 -- Big Endian. Добавил перестановку байт, получилось: Код:
В разработке: воспроизводственный контур ИТ
|
![]() |
![]() |
![]() |
#15 |
Форумчанин
Регистрация: 10.02.2014
Сообщений: 526
|
![]()
Даже не слышал про такое... Спасибо большое! Здорово!
Решил воспользоватся Яндексом, чтоб хоть узнать что это такое. Увидел ссылку на НОУ ИНТУИТ. Решил глянуть где там такое объясняют. "Ассемблер в Linux для программистов на C". ![]() ![]() Но, кажется, смысл я уловил. Это когда байты задом наперёд идут? А как-нибудь можно программно понять: стандартная кодировка или такая?.. Последний раз редактировалось Ship_1; 30.01.2017 в 14:04. |
![]() |
![]() |
![]() |
#16 | ||
Просветитель
Участник клуба
Регистрация: 26.12.2012
Сообщений: 1,844
|
![]() Цитата:
![]() Цитата:
Попутно решил проблему с 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 |