Страница 37 из 68
Добавлено: Пт фев 04, 2011 18:16
CaptainFlint
Total7zip писал(а):Коротко - Unicode всегда 2 байта на букву, а UTF8 только для символов, которые не помещаются в один байт.
Хоть здесь это и оффтоп, всё же уточню, чтобы другие не путались. Unicode — это стандарт, а разные кодировки — это UTF и UCS. Двухбайтовая кодировка — это UCS-2, и сейчас она недействительна, т.к. символов в юникоде больше, чем 65536, т.е. двух байтов для них уже недостаточно. Сейчас используется схожая с ней кодировка UTF-16, которая кодирует большую часть символов двумя байтами, но есть и символы, занимающие по четыре байта. Ну и UTF-8 — она не только для символов, не помещающихся в один байт, а для всего диапазона Unicode, символы в ней занимают от 1 до 4 байтов.
У Гислера в документации под "Unicode" в большей части случаев подразумевается UTF-16.
Добавлено: Пт фев 04, 2011 18:34
XXXLer
Flasher писал(а):Total7zip Мои дальнейшие действия?
брать оригинальный lng, открывать его как UTF-16 c Unix-переносом строки и править заново.
и, да, если файл в UTF-16 открыть в режиме UTF-8 и сохранить как ANSI, то будут и кракозяблики и "пробел" каждым нечетным символом
Добавлено: Пт фев 04, 2011 18:54
MVV
Можно обычным виндовским блокнотом открыть файл. Но ему реально не нравятся однобайтные переносы строк. Тогда в хекс-редакторе позаменять байты 0A на 0D 0A, а потом открывать в блокноте и сохранять куда угодно.
А вообще, наверное, уже в дистрибутиве плагина текстовые файлы должны быть с виндовскими разрывами строк, т.к. плагин все-таки для виндовской программы. Тогда ни у кого проблем не возникнет.
Добавлено: Пт фев 04, 2011 20:27
Flasher
XXXLer писал(а):брать оригинальный lng, открывать его как UTF-16 c Unix-переносом строки и править заново.
Что значит "открывать как UTF-16"? Редактор автоматом по логике должен декодировать такие вещи. Разве нет?
XXXLer писал(а):и, да, если файл в UTF-16 открыть в режиме UTF-8 и сохранить как ANSI, то будут и кракозяблики и "пробел" каждым нечетным символом
Опять же, что значит "открыть как UTF-8"? Я не сохранял в ANSI, я сразу написал во что я сохранил.
MVV писал(а):Можно обычным виндовским блокнотом открыть файл. Но ему реально не нравятся однобайтные переносы строк.
Ну да, он выдаёт одну строчку.
MVV писал(а):А вообще, наверное, уже в дистрибутиве плагина текстовые файлы должны быть с виндовскими разрывами строк, т.к. плагин все-таки для виндовской программы. Тогда ни у кого проблем не возникнет.
Не понял к чему это сказано, если уже возникло?
Добавлено: Пт фев 04, 2011 20:47
XXXLer
Что значит "открывать как UTF-16"? Редактор автоматом по логике должен декодировать такие вещи. Разве нет?
обычно да, но как правило эта опция отключаема, и к слову, лично у меня Akelpad на автомате и выбирает UTF-16:

Добавлено: Пт фев 04, 2011 21:12
Flasher
XXXLer
В Параметрах у меня стоит:
Распознавание кодировки: Кириллица (ANSI, KOI8-R, UTF-8)
Кодировка по умолчанию: UTF-8.
Добавлено: Пт фев 04, 2011 21:24
XXXLer
В Параметрах у меня стоит:
Распознавание кодировки: Кириллица (ANSI, KOI8-R, UTF-8 )
Кодировка по умолчанию: UTF-8.
по идее это не влияет на UTF-16, попробуйте удалить "HKEY_CURRENT_USER\Software\Akelsoft\AkelPad\Recent" - там хранится выбранная пользователем кодировка для открывавшихся файлов
Добавлено: Пт фев 04, 2011 22:03
Flasher
XXXLer писал(а):по идее это не влияет на UTF-16
Так файл уже переведён в UTF-8. Имеет ли сейчас смысл эта процедура? Я же не жаловался на отображение UTF-16 LE.
Добавлено: Пт фев 04, 2011 23:12
MVV
Flasher писал(а):Так файл уже переведён в UTF-8. Имеет ли сейчас смысл эта процедура?
Но ведь можно поэкспериментировать с файлом из дистрибутива.
Flasher писал(а):MVV писал(а):А вообще, наверное, уже в дистрибутиве плагина текстовые файлы должны быть с виндовскими разрывами строк, т.к. плагин все-таки для виндовской программы. Тогда ни у кого проблем не возникнет.
Не понял к чему это сказано, если уже возникло?
Это пожелание на будущее.

Добавлено: Пт фев 04, 2011 23:18
Flasher
MVV писал(а):Но ведь можно поэкспериментировать с файлом из дистрибутива.
Как именно экспериментировать? Перевести в нужную кодировку?
Хм. Помогло.

MVV писал(а):Это пожелание на будущее.
Автору что ли?
Total7zip, предлагаю всё-таки самому проверить как отображается lng в обычном блокноте. Даже без перекодировки текст разбивается на 13 строк.
Добавлено: Вс фев 06, 2011 22:57
XXXLer
есть проблема с NSIS - если в одной папке несколько файлов с идентичным именем, в любом случаем извлекается 1й файл
Добавлено: Вс фев 06, 2011 23:14
Total7zip
а можно пример - возможно это баг в тотал коммандере.
работает он примерно так - просит открыть архив, потом просит информацию о первом файле, потом о следующем и т.п.
и так строит дерево файлов и папок.
потом закрывает архив.
дальше вы ходите по готовому дереву, и когда наконец выбираете файл,
тотал коммандер опять росит плагин открыть архив, опять начинает перебирать файлы и когда доходит до нужного файла просит его извлечь. возможно что он проверяет не по номеру (индексу) файла, а просто по совпадению имен.
нужен пример
Добавлено: Вс фев 06, 2011 23:33
XXXLer
Добавлено: Пн фев 07, 2011 12:07
MVV
XXXLer, давай рассуждать логически.
Если в папке есть три файла с именем
1.txt (к примеру), ты хочешь извлечь
второй, выделяешь его и копируешь. Тотал говорит плагину, что ты хочешь извлечь файл
1.txt. Откуда плагин узнает, который из этих трех ты хочешь извлечь?
Не рассчитан интерфейс WCX-плагинов на то, что в одной папке может быть несколько файлов с одинаковыми именами, и ничего с этим не поделаешь. Тотал сообщает плагину лишь имена файлов, но никак не их индексы в панели.
В таких редких случаях открывай архив в интерфейсе 7-Zip и перетягивай нужные файлы в панель тотала - благо, работают они на одном "движке".

Добавлено: Пн фев 07, 2011 12:39
XXXLer
XXXLer, давай рассуждать логически.
Если в папке есть три файла с именем 1.txt (к примеру), ты хочешь извлечь второй, выделяешь его и копируешь. Тотал говорит плагину, что ты хочешь извлечь файл 1.txt. Откуда плагин узнает, который из этих трех ты хочешь извлечь?
в принципе достаточно добавить сквозную нумерацию дубликатов (как в том-же inno unpack)