Здравствуйте, Alex Dav, Вы писали:
AD>что это такое? где бы про них почитать? как их правильно отобразить? AD>я имею ввиду кпримеру знак евро и RichEdit контрол.
AD>Спасибо.
Вообще-то спец символы — это символы используемые интерпретатором. Например символ " используется для определения строки. Для того что бы компилятор понимал его как символ а не начало(конеч) строки нужно перед ним поставить символ \. Выглядет это примерно так: print("\"");
Для того что бы использовать символы не используемые на клавиатуре достаточно нажать alt+код_символа. Или в программе 0хКод_символа (шестнадцатиричная форма.
Здравствуйте, UnConst, Вы писали:
UC>Вообще-то спец символы — это символы используемые интерпретатором. Например символ " используется для определения строки. Для того что бы компилятор понимал его как символ а не начало(конеч) строки нужно перед ним поставить символ \. Выглядет это примерно так: print("\""); UC>Для того что бы использовать символы не используемые на клавиатуре достаточно нажать alt+код_символа. Или в программе 0хКод_символа (шестнадцатиричная форма.
немного не о том — есть вот знак евро, буква а с точками над ней — это не вывести как \"
и потом — когда вы в ворде выбираете символ там же нет ни кодов ни \ — я думаю какая то другая комбинация символов или теги. Вот и вопрос как?
Здравствуйте, Alex Dav, Вы писали:
AD>немного не о том — есть вот знак евро, буква а с точками над ней — это не вывести как \" AD>и потом — когда вы в ворде выбираете символ там же нет ни кодов ни \ — я думаю какая то другая комбинация символов или теги. Вот и вопрос как?
имхо вы не очень понятно ставите вопрос... Что как ? Как вывести такой символ ? Взять таблицу (ту с которой собираетесь работать ) и работать через код данного(ых) символа(ов).
Здравствуйте, dip_2000, Вы писали:
_>Здравствуйте, Alex Dav, Вы писали:
AD>>немного не о том — есть вот знак евро, буква а с точками над ней — это не вывести как \" AD>>и потом — когда вы в ворде выбираете символ там же нет ни кодов ни \ — я думаю какая то другая комбинация символов или теги. Вот и вопрос как? _>имхо вы не очень понятно ставите вопрос... Что как ? Как вывести такой символ ? Взять таблицу (ту с которой собираетесь работать ) и работать через код данного(ых) символа(ов).
Просто я не понимаю как это работает — поэтому и вопрос такой не понятный.
вот я вставил строку ä, ö, ü, Ä, Ö, Ü, ß, € — все символы нормально отобразились — как? я же не /1233 (к примеру) вставлял.
а вот они же из другого текстового редактора Г¤, Г¶, Гј, Г„, Г–, Гњ, Гџ, € — почему неправильно отбразились?
Здравствуйте, Alex Dav, Вы писали:
AD>Просто я не понимаю как это работает — поэтому и вопрос такой не понятный.
AD>вот я вставил строку ä, ö, ü, Ä, Ö, Ü, ß, € — все символы нормально отобразились — как? я же не /1233 (к примеру) вставлял. AD>а вот они же из другого текстового редактора Г¤, Г¶, Гј, Г„, Г–, Гњ, Гџ, € — почему неправильно отбразились?
Потому что ты строку, закодированную в UTF-8, интерпретировал как cp1251 (windows-cyrillic).
А так как UTF-8 — мультибайтная кодировка, получилось, что некоторые одиночные буквы (закодированные 2-3 байтами) превратились в многобуквенные комбинации.
Вообще, несоответствие подразумеваемой и фактической кодировок даёт такое обширное поле для ошибок и непониманий, что проще указать конкретное место, чем говорить про "вообще".
Например, юзер руками ввёл в ричедит текст (а поскольку контрол юникодный, и внутри работает вообще с UCS-2, то вставить туда можно что попало). Затем ты программно оттуда извлёк этот текст в некоторой заданной кодировке. Если кодировка однобайтная — произойдёт срезка (некоторые символы превратятся в квадратики/вопросики, пропадут диакритические знаки и т.д.)
Если же UTF-8, то ты должен дальше с этой строкой работать именно как с UTF-8:
— сохраняя в простой текстовый файл, не забудь записать префикс (три байта, не помню что там должно быть — поищи сам)
— сканировать строку не побайтно, а посимвольно
— перекодируя обратно в UCS-2, UTF-16 или в дефолтную кодировку системы (пусть со срезкой), указывать правильную исходную кодировку
Здравствуйте, Alex Dav, Вы писали:
AD>немного не о том — есть вот знак евро, буква а с точками над ней — это не вывести как \" AD>и потом — когда вы в ворде выбираете символ там же нет ни кодов ни \ — я думаю какая то другая комбинация символов или теги. Вот и вопрос как?
Символом \ выводят спец-символы(\,",', и различные коды). Если вам нужно вывести знак евро пишите \хКОД(извините не помню как его). Но это будет в кодировке ANSI. В других кодировках его код может быть иным.