| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > Вставка в отчет греческой буквы |
| Автор: Нитонисе 26.5.2011, 11:42 |
| Программно генерирую отчет. Нужно вставить греческую букву "фи". Шрифт отчета - Times New Roman, шрифт редактора кода - Courier New. И там и там есть греческая буква "фи". Но в редакторе кода она почему-то не отображается, вместо нее вопросительный зак. он же идет и в отчет. Как решить эту проблему? |
| Автор: _Dimon_ 26.5.2011, 12:06 | ||
| Какая IDE? Тут нужна поддержка юникода. Если RAD 2009 и выше, то должно работать. Правда еще и генератор отчетов должен поддержывать... У меня на XE вот так нормально работает.
P.S. Вставитшь эту букву в код, IDE попросит сохранить *.cpp файл в кодировке UTF-8. Нужно согласится )))) |
| Автор: Нитонисе 26.5.2011, 12:29 |
| У меня Builder 6. Что касается отчета, то фактически его формирую в переменной типа AnsiString с использованием разметки HTML, сохраняю эту строку в файл и открываю в браузере. |
| Автор: _Dimon_ 26.5.2011, 13:21 |
| Юзай TMS Unicode Component Pack, правда она платная. Но можно найти в нете Tnt Delphi Unicode Controls |
| Автор: Usper 26.5.2011, 13:25 | ||
Генерируете HTML отчёт? Браузер обычно сам решает какой ему шрифт использовать и ему глубоко плевать какой шрифт используется в IDE. Для греческих букв можно использовать escape-последовательности, для этого в html-документ надо написать что-то вроде:
Другие escape-последовательности смотрите, например, http://www.rvsn2.narod.ru/simbol.htm. Проверял код в Opera 11.11 и IE 6. |
| Автор: Нитонисе 26.5.2011, 13:38 |
| Шрифт отчета я задаю сам тэгами HTML. А шрифт редактора кода упоминал в том смысле, что по идее "фи" должно отображаться и там. Что касается браузера, то я использую просто компонент CppWebBrowser. Именно в нем я открываю HTML-файл с отчетом. Никакие эскейп-последовательности тут не работают. |
| Автор: Usper 26.5.2011, 14:20 |
| Ну, видимо, это проблема CppWebBrowser, если уж древний "Осёл" их понимает... А вообще какие-нибудь последовательности там работают? |
| Автор: Нитонисе 26.5.2011, 14:29 |
| Откуда ж мне знать) Я вижу проблему в том, что нужный символ не отображается в редакторе кода. Браузер-то способен воспринять греческую букву. Но так как в редакторе кода вместо буковки "фи" вставляется вопросительный знак, то он же и идет в отчет. И, кстати, шрифт редактора кода нельзя сменить на Times New Roman. Может можно передать в отчет какой-то код символа, который может прочитаться шрифтом Times New Roman? |
| Автор: Usper 26.5.2011, 14:39 |
Я или чего-то не понимаю, или вы чего-то недоговариваете ![]() Возможно проблема в генерируемом html-отчёте, незакрытый тег, или ещё что-нибудь. Попробуйте повторить то, что сделал я. Если опять будет проблема, значит дело в системе, не хватает какого-нибудь шрифта. |
| Автор: Нитонисе 26.5.2011, 14:51 |
| Набирая φ я не учел точку с запятой. А так действительно работает. Благодарю Пока другие последовательности не смотрел, но мне понадобится много разных символов, имеющихся в шрифтах, но не отображаемых в тексте, в том числе математические. Пойду смотреть. |
| Автор: Нитонисе 28.5.2011, 10:24 | ||||
Это мне ни о чем не говорит
А можно об этом поподробнее? |
| Автор: xvr 30.5.2011, 19:19 | ||||||||
Перевожу - CppWebBrowser умеет все, что умеет установленный на вашем компьютере Internet Explorer
&#<code>; - Unicode символ (code - в виде десятичного числа) &#x<code>; - Unicode символ (code - в hex) http://msdn.microsoft.com/en-us/library/aa752011%28v=VS.85%29.aspx |