Wikipedia писал(а):
Иногда кодировку Юникода Big Endian (UTF-16BE) называют Юникодом с обратным порядком байтов.Но нифига я не нашел нормального перекодировщика в такой формат из UTF-8. Может кто кодик подкинет
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
Тут, скорее всего, предствалена часть строки в кодировке UTF-16BE (Юникода Big Endian)
Wikipedia писал(а): Иногда кодировку Юникода Big Endian (UTF-16BE) называют Юникодом с обратным порядком байтов.Но нифига я не нашел нормального перекодировщика в такой формат из UTF-8. Может кто кодик подкинет |
|||
карма: 22 |
|
Ответов: 5446
Рейтинг: 323
|
|||
nesco, unix-оидный iconv умеет это
|
|||
карма: 1 |
|
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
Гхм... Ты лучше предложить ничего не смог
|
|||
карма: 22 |
|
Ответов: 5446
Рейтинг: 323
|
|||
nesco, не мог. У меня сезон юниксоидства начался
------------ Дoбавленo в 14.34: Кстати, в прошлом посте добавил ссылку на исходники libiconv. Думаю, там и без поллитры можно будет разобраться. |
|||
карма: 1 |
|
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
Ну хоть на и этом Спасибо
------------ Дoбавленo в 14.45: iarspider писал(а): Думаю, там и без поллитры можно будет разобратьсяАга, пошутил. Скажи лучше, где рыть в этом море различных модулей, я там потерялся уже |
|||
карма: 22 |
|
Ответов: 5446
Рейтинг: 323
|
|||
Насколько я понимаю, кодирование везде двухэтапное: widechar1 -> multibyte -> widechar2. Нужные процедуры живут в файлах utf16be.h и utf8.h
------------ Дoбавленo в 15.48: Но про поллитры - это я, признаю, лоханулся: забыл, как жутко выглядят православные unix-оидные исходники (особенно на plain-C) |
|||
карма: 1 |
|
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
Млин. Все оказалось гораздо проще, чем показалось на первый взгляд.
Добавил (на SVN) в CharSet метод ANSI -> UNICODE |
|||
карма: 22 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
nesco писал(а): Добавил (на SVN)Ну и глянь сюда. Примитивно, но работает. Компонент и пример в архиве. - Удалил . Новый компонент выложил в "Компоненты" ------------ Дoбавленo в 23.38: У меня в IC, пришлось засунуть в компонент |
|||
карма: 25 |
|
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
То преобразование, которое я сделал, работает с текущей кодовой страницей и преобразует в 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 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
nesco, я не предлагал что-то переделывать - я предложил автоопределение кодировки текстового файла.
Какая совместимость. Ты сейчас можешь автоматом выбрать нужный CharSet.Type ? Или изменить его в процессе работы проги ? НЕТ. А я спокойно подключаю 4-е CharSet-а с соответствующими Type и программа свободно работает при открытии любого файла с любой кодировкой. Не смотрел ты внимательно, а жаль. При чем тут совместимость если предлагается совершенно новый компонент, которого в старых схемах и быть не может. У меня в старых IC стоит. |
|||
карма: 25 |
|
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
Tad, млин, ну так бы и сказал. Мне показалось, что ты предлагаешь доделать CharSet. Извини, не понял тебя.
В твоем компоненте есть одна неточность -- невозможность отличить ANSI от UTF-8 и UTF-16 без строк направления. Ты можешь что-либо предложить по этому поводу А насчет компонента надо подумать |
|||
карма: 22 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Там в архиве четыре файла с разными кодировками (которые можно создать Блокнотом)- различает все.
Осталось добавить UTF32BE 0000FEFF UTF32LE FFFE0000 |
|||
карма: 25 |
|
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
Tad писал(а): Осталось добавить
UTF32BE 0000FEFF UTF32LE FFFE0000 У нас нет на них конверторов И причем там выложенные файлы, если файлы чужие, без строк направления, как твой компонент распознает, что это за кодировка |
|||
карма: 22 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
nesco писал(а): как твой компонент распознаетПо первым 4-м, 3-м, или 2-м байтам. Проще грибов. Запусти и посмотри |
|||
карма: 25 |
|
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
Tad писал(а): По первым 4-м, 3-м, или 2-м байтамМлин, ну ты и упертый. Я же спрашиваю -- а что если их в файле не будет, стандарт это предусматривает Ну не будет в файле вот этих строк в начале, что дальше
И причем тут твои файлы, я никак в толк не возьму |
|||
карма: 22 |
|