юникод => другая кодировка

kill-still

Посоветуйте прогу, которая отображает побайтно содержание буфера, и позволяет его редактировать
Проблема следующая: в новом IDE(2006) по дефолту стоит юникод (что с одной стороны полезно - раньше приходилось переключать раскладку при копировании текст). Теперь проблема в другом. Если значение переменной в аски, то он её так и хранит. Если хотя бы один из символов в юникоде, то всю строку целиком переводит. Старые апи ф-ии как-то странно отображают юникод в висте(с сиреневой тенью). Т.е. те надписи, что выполнены в юникоде в висте коряво рисуются (в хп как было так и есть). Юникод это конечно хорошо(кракозябрами он не страдает но переписывать проект смысла нет, нужно просто заменить весь юникод на аски. как это сделать?

pitrik2

нужно просто заменить весь юникод на аски
или я тебя не понял или это полнейший бред

serega1604

может юникод=>cp1251 ?

dangerr

во всех современных кодировках, включая UTF-8, первые 128 символов кодируются одинаково. Они и называются символами ASCII. Поэтому если в строке содержатся только символы ASCII, то она уже в ASCII в какой бы кодировке ты бы ее не сохранял.
Исключение составляют кодировки UTF-16, там каждый второй байт в этом случае будет нулевой.
В таком случае посоветую akelpad или iconv в зависимости от предпочитаемой системы.

kill-still

или я тебя не понял или это полнейший бред
Может и бред, но половина надписей на русском рисуется нормально, а другая половина - глючат.
Вроде в юникоде на обин символ больше байт отводится, нежели в других кодировках?

serega1604

ну тебе же объяснили, почему то, что ты написал - бред.

kill-still

ок.
как определить, чем отличаются 2 идентичные надписи?

AlexV769

как определить, чем отличаются 2 идентичные надписи?
они идентичны => ничем не различаются.

kill-still

В ответ на:
как определить, чем отличаются 2 идентичные надписи?
они идентичны => ничем не различаются.
они инетпретируются одинаково.
в памяти могут представлятся по-разному.

AlexV769

по-моему у тебя в процессоре полная каша, а что у тебя там в памяти представляется и как - вообще представить страшно.

kill-still

те кнопки, которые были сделаны ещё в D7 - рисуются нормально.
точно такой же класс с точно такой же надписью но положенный на форму уже в D2006 рисуется с фиолетовой тенью.
если изменить надпись на старой кнопке(скажем добавить/стереть пробел она тоже начинает глючить.
З.Ы. это только под .net апи(ХР) всё нормально рисует.

pitrik2

Может и бред, но половина надписей на русском рисуется нормально, а другая половина - глючат.
английская буква G и в аскии и в юникоде будет иметь один и тот же код
поэтому когда ты просишь перевести юникод в аскии - тебе говорят что это бред
если речь про русские буквы - то их в аскии ВООБЩЕ нет
и если ты хочешь перевести юникодную русскую букву в аскии - ты фактически ее просто удаляешь
тебя поэтому спросили, может ты хочешь перевести юникод в cp1251?
для этого полно прог в инете
но скорей всего тебе как раз наоборот надо переводить: свои старые cp1251-строчки в новые юникодные
а скорей всего тебе вооще надо указать в своей IDE что у тебя сорцы в cp1251, в большинстве IDE в настройках есть такая пунктик: кодировка сорцов

AlexV769

И вообще, надписи на кнопочках надо делать в отдельных файлах, а в сорцах всё писать в пределах первой половины ASCII-таблицы :)

kill-still

И вообще, надписи на кнопочках надо делать в отдельных файлах, а в сорцах всё писать в пределах первой половины ASCII-таблицы
В сорцах нет ничего. В дельфях такие штуки хранятся в отдельных файлах(.dpr) для каждой формы(что-то вроде xml где хранится параметры объекта (значения полей).
Если открыть их редактором - там нечитабильно всё. Если открыть дельфями - там всё идентично выглядит. Но обычно в dpr нито не лазит, а делается это всё визуальным редактором + инспектор объектов.
З.Ы. полазил по настройкам - можно только шрифт менять.

kill-still

Там кстати скорее utf нежели cp.

serega1604

Там кстати скорее utf нежели cp.
т.е. ты утверждаешь, что тебе надо перевести юникод => utf ?

kill-still

Я для начала хотел бы узнать, чем у меня эти внешне одинаковые символы отличаются. :)
Для этого неплохо бы их побайтовое представление увидеть.

kill-still

О, кое что получилось:
    Caption = #1054#1090#1084#1077#1085    Caption = #1056#1072#1089#1089#1095#1080#1090#1072#1090    Caption = #1053#1072#1089#1090#1088#1086#1081#1082

kill-still

вот, а в старых юнитах
Caption = 'Äîáàâëåíèå ïîëÿ'

kill-still

Кодировка дос
Caption = 'Добавление поля'

vall

echo Äîáàâëåíèå ïîëÿ | iconv -t iso8859-1 | iconv -f cp1251

kill-still

только наоборот надо в dos переконвертить + оно не в простом текстовом файле хранится.

tokuchu

только наоборот надо в dos переконвертить
Ставь сразу MS-DOS 6.22 и используй TurboVision. Чтобы был полноценный откат в каменный век. :)
Оставить комментарий
Имя или ник:
Комментарий: