что такое спец символы
От: Alex Dav Россия  
Дата: 23.11.07 14:39
Оценка:
что это такое? где бы про них почитать? как их правильно отобразить?
я имею ввиду кпримеру знак евро и RichEdit контрол.

Спасибо.
Re: что такое спец символы
От: UnConst Россия  
Дата: 23.11.07 14:49
Оценка:
Здравствуйте, Alex Dav, Вы писали:

AD>что это такое? где бы про них почитать? как их правильно отобразить?

AD>я имею ввиду кпримеру знак евро и RichEdit контрол.

AD>Спасибо.



Вообще-то спец символы — это символы используемые интерпретатором. Например символ " используется для определения строки. Для того что бы компилятор понимал его как символ а не начало(конеч) строки нужно перед ним поставить символ \. Выглядет это примерно так: print("\"");
Для того что бы использовать символы не используемые на клавиатуре достаточно нажать alt+код_символа. Или в программе 0хКод_символа (шестнадцатиричная форма.
Re[2]: что такое спец символы
От: Alex Dav Россия  
Дата: 25.11.07 15:15
Оценка:
Здравствуйте, UnConst, Вы писали:

UC>Вообще-то спец символы — это символы используемые интерпретатором. Например символ " используется для определения строки. Для того что бы компилятор понимал его как символ а не начало(конеч) строки нужно перед ним поставить символ \. Выглядет это примерно так: print("\"");

UC>Для того что бы использовать символы не используемые на клавиатуре достаточно нажать alt+код_символа. Или в программе 0хКод_символа (шестнадцатиричная форма.

немного не о том — есть вот знак евро, буква а с точками над ней — это не вывести как \"
и потом — когда вы в ворде выбираете символ там же нет ни кодов ни \ — я думаю какая то другая комбинация символов или теги. Вот и вопрос как?
Re[3]: что такое спец символы
От: dip_2000 Россия  
Дата: 25.11.07 18:16
Оценка:
Здравствуйте, Alex Dav, Вы писали:

AD>немного не о том — есть вот знак евро, буква а с точками над ней — это не вывести как \"

AD>и потом — когда вы в ворде выбираете символ там же нет ни кодов ни \ — я думаю какая то другая комбинация символов или теги. Вот и вопрос как?
имхо вы не очень понятно ставите вопрос... Что как ? Как вывести такой символ ? Взять таблицу (ту с которой собираетесь работать ) и работать через код данного(ых) символа(ов).
Re[4]: что такое спец символы
От: Alex Dav Россия  
Дата: 26.11.07 08:49
Оценка:
Здравствуйте, dip_2000, Вы писали:

_>Здравствуйте, Alex Dav, Вы писали:


AD>>немного не о том — есть вот знак евро, буква а с точками над ней — это не вывести как \"

AD>>и потом — когда вы в ворде выбираете символ там же нет ни кодов ни \ — я думаю какая то другая комбинация символов или теги. Вот и вопрос как?
_>имхо вы не очень понятно ставите вопрос... Что как ? Как вывести такой символ ? Взять таблицу (ту с которой собираетесь работать ) и работать через код данного(ых) символа(ов).

Просто я не понимаю как это работает — поэтому и вопрос такой не понятный.

вот я вставил строку ä, ö, ü, Ä, Ö, Ü, ß, € — все символы нормально отобразились — как? я же не /1233 (к примеру) вставлял.
а вот они же из другого текстового редактора Г¤, Г¶, Гј, Г„, Г–, Гњ, Гџ, € — почему неправильно отбразились?

Спасибо.
Re[5]: что такое спец символы
От: Кодт Россия  
Дата: 26.11.07 11:31
Оценка:
Здравствуйте, 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 или в дефолтную кодировку системы (пусть со срезкой), указывать правильную исходную кодировку
... << RSDN@Home 1.2.0 alpha rev. 655>>
Перекуём баги на фичи!
Re[3]: что такое спец символы
От: UnConst Россия  
Дата: 26.11.07 14:46
Оценка:
Здравствуйте, Alex Dav, Вы писали:

AD>немного не о том — есть вот знак евро, буква а с точками над ней — это не вывести как \"

AD>и потом — когда вы в ворде выбираете символ там же нет ни кодов ни \ — я думаю какая то другая комбинация символов или теги. Вот и вопрос как?

Символом \ выводят спец-символы(\,",', и различные коды). Если вам нужно вывести знак евро пишите \хКОД(извините не помню как его). Но это будет в кодировке ANSI. В других кодировках его код может быть иным.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.