Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 26163
Рейтинг: 2127
#16: 2010-01-27 14:24:07 ЛС | профиль | цитата
Тут, скорее всего, предствалена часть строки в кодировке UTF-16BE (Юникода Big Endian)

Wikipedia писал(а):
Иногда кодировку Юникода Big Endian (UTF-16BE) называют Юникодом с обратным порядком байтов.


Но нифига я не нашел нормального перекодировщика в такой формат из UTF-8. Может кто кодик подкинет
карма: 22

0
Ответов: 5446
Рейтинг: 323
#17: 2010-01-27 14:28:58 ЛС | профиль | цитата
nesco, unix-оидный iconv умеет это
карма: 1

0
Разработчик
Ответов: 26163
Рейтинг: 2127
#18: 2010-01-27 14:31:49 ЛС | профиль | цитата
Гхм... Ты лучше предложить ничего не смог
карма: 22

0
Ответов: 5446
Рейтинг: 323
#19: 2010-01-27 14:32:51 ЛС | профиль | цитата
nesco, не мог. У меня сезон юниксоидства начался
------------ Дoбавленo в 14.34:
Кстати, в прошлом посте добавил ссылку на исходники libiconv. Думаю, там и без поллитры можно будет разобраться.
карма: 1

0
Разработчик
Ответов: 26163
Рейтинг: 2127
#20: 2010-01-27 14:36:17 ЛС | профиль | цитата
Ну хоть на и этом Спасибо
------------ Дoбавленo в 14.45:
iarspider писал(а):
Думаю, там и без поллитры можно будет разобраться

Ага, пошутил. Скажи лучше, где рыть в этом море различных модулей, я там потерялся уже
карма: 22

0
Ответов: 5446
Рейтинг: 323
#21: 2010-01-27 15:47:08 ЛС | профиль | цитата
Насколько я понимаю, кодирование везде двухэтапное: widechar1 -> multibyte -> widechar2. Нужные процедуры живут в файлах utf16be.h и utf8.h
------------ Дoбавленo в 15.48:
Но про поллитры - это я, признаю, лоханулся: забыл, как жутко выглядят православные unix-оидные исходники (особенно на plain-C)
карма: 1

0
Разработчик
Ответов: 26163
Рейтинг: 2127
#22: 2010-01-27 18:02:49 ЛС | профиль | цитата
Млин. Все оказалось гораздо проще, чем показалось на первый взгляд.

Добавил (на SVN) в CharSet метод ANSI -> UNICODE
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#23: 2010-01-27 23:37:14 ЛС | профиль | цитата
nesco писал(а):
Добавил (на SVN)

Ну и глянь сюда. Примитивно, но работает.
Компонент и пример в архиве. - Удалил . Новый компонент выложил в "Компоненты"
------------ Дoбавленo в 23.38:
У меня в IC, пришлось засунуть в компонент
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26163
Рейтинг: 2127
#24: 2010-01-27 23:42:38 ЛС | профиль | цитата
То преобразование, которое я сделал, работает с текущей кодовой страницей и преобразует в UTF-16BE (Юникода Big Endian) без строки описания направления

Wikipedia писал(а):
Файлы в кодировках UTF-16 и UTF-32, не содержащие BOM, должны иметь порядок байтов big-endian

------------ Дoбавленo в 23.52:
Хорошо, что ты предлагаешь, чтобы нарушить всю совместимость всех ранних схем
------------ Дoбавленo в 23.54:
К тому же, про UTF-8 там лишнее это все

Wikipedia писал(а):
Также он иногда применяется для обозначения формата UTF-8, хотя к этому формату и неприменимо понятие порядка байтов

Ага, и именно -- иногда

------------ Дoбавленo в 23.56:
Вывод -- ничего переделывать не будем, нарушения стандарта нет
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#25: 2010-01-28 00:52:34 ЛС | профиль | цитата
nesco, я не предлагал что-то переделывать - я предложил автоопределение кодировки текстового файла.
Какая совместимость.
Ты сейчас можешь автоматом выбрать нужный CharSet.Type ?
Или изменить его в процессе работы проги ? НЕТ.

А я спокойно подключаю 4-е CharSet-а с соответствующими Type и программа свободно работает при открытии любого файла с любой кодировкой.

Не смотрел ты внимательно, а жаль.
При чем тут совместимость если предлагается совершенно новый компонент, которого в старых схемах и быть не может.
У меня в старых IC стоит.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26163
Рейтинг: 2127
#26: 2010-01-28 01:02:21 ЛС | профиль | цитата
Tad, млин, ну так бы и сказал. Мне показалось, что ты предлагаешь доделать CharSet. Извини, не понял тебя.
В твоем компоненте есть одна неточность -- невозможность отличить ANSI от UTF-8 и UTF-16 без строк направления. Ты можешь что-либо предложить по этому поводу

А насчет компонента надо подумать
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#27: 2010-01-28 01:16:56 ЛС | профиль | цитата
Там в архиве четыре файла с разными кодировками (которые можно создать Блокнотом)- различает все.
Осталось добавить
UTF32BE 0000FEFF
UTF32LE FFFE0000

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26163
Рейтинг: 2127
#28: 2010-01-28 01:24:38 ЛС | профиль | цитата
Tad писал(а):
Осталось добавить
UTF32BE 0000FEFF
UTF32LE FFFE0000

У нас нет на них конверторов

И причем там выложенные файлы, если файлы чужие, без строк направления, как твой компонент распознает, что это за кодировка
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#29: 2010-01-28 01:42:21 ЛС | профиль | цитата
nesco писал(а):
как твой компонент распознает

По первым 4-м, 3-м, или 2-м байтам.
Проще грибов.
Запусти и посмотри
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26163
Рейтинг: 2127
#30: 2010-01-28 01:48:56 ЛС | профиль | цитата
Tad писал(а):
По первым 4-м, 3-м, или 2-м байтам

Млин, ну ты и упертый. Я же спрашиваю -- а что если их в файле не будет, стандарт это предусматривает

Ну не будет в файле вот этих строк в начале, что дальше


UTF-8 - EF BB BF
UTF-16BE - FE FF
UTF-16LE - FF FE
UTF-32BE - 00 00 FE FF
UTF-32LE -FF FE 00 00

И причем тут твои файлы, я никак в толк не возьму
карма: 22

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)