Я продолжаю забывать это и возвращаться к нему снова! Я думаю, что лучший ответ является комбинацией ответов, обеспеченных до сих пор.
Во-первых, & переменный префикс в sqlplus/sqldeveloper, следовательно проблема - когда это появится, это, как ожидают, будет частью имени переменной.
НАБОР ОПРЕДЕЛЯЕТ ПРОЧЬ, остановит sqlplus, интерпретирующий & этот путь.
, Но что, если необходимо использовать sqlplus переменные и литерал & символы?
, например,
set define on
set escape on
define myvar=/forth
select 'back\\ \& &myvar' as swing from dual;
Производит:
old 1: select 'back\\ \& &myvar' from dual
new 1: select 'back\ & /forth' from dual
SWING
--------------
back\ & /forth
, Если Вы хотите использовать различный символ ESC:
set define on
set escape '#'
define myvar=/forth
select 'back\ #& &myvar' as swing from dual;
при установке определенного символа ESC можно видеть 'SP2-0272: символ ESC не может быть алфавитно-цифровым или пробел'. Это, вероятно, означает, что Вам уже определили символ ESC, и вещи становятся ужасно самосправочными. Очевидный способ предотвращения этой проблемы должен выделить Escape сначала:
set escape off
set escape '#'
«Специальные символы», на которые вы ссылаетесь, поддерживаются кодировкой Unicode NSString, но не кодировкой MacRoman, используемой вашими процедурами рисования шрифтов Core Graphics (только две кодировки, которые вы можете установить, используя CGContextSelectFont () - это kCGEncodingMacRoman и kCGEncodingFontSpecific). Это недостаток маршрута CGContextShowTextAtPoint () для рисования текста. Из-за этого я использую метод NSString -drawAtPoint: всякий раз, когда мне нужно вручную нарисовать текст в контексте Core Graphics.
Что касается производительности, в комментарии к более раннему ответу Кайл провел тестирование drawAtPoint: как отрисовка 75 раз в секунду по сравнению с отрисовкой CGContextShowTextAtPoint () 99 раз в секунду. Это не большая разница в скорости отрисовки, поэтому вы не получите многого, идя этим путем. По моему опыту, -drawAtPoint: более чем достаточно для моих приложений.
РЕДАКТИРОВАТЬ (14.10.2009): Как указал Сикстен Отто, я неправильно читаю свой собственный код. UTF-8 поддерживает полный диапазон символов, MacRoman шрифта - нет.