2016-09-27 5 views
0

У меня есть существующий модуль DOORS, у которого есть некоторые богатые текстовые записи; эти записи имеют в них некоторые символы, такие как «фигурные» кавычки. Я пытаюсь обновить макрос DXL, который экспортирует исходный файл LaTeX, и проблема в том, что эти символы большого числа не считаются «стандартными UTF-8» функцией импорта TexMaker (и в любом случае, вероятно, они не будут обработаны Xelatex или другими преобразователями). Я не могу просто использовать функции UnicodeString в DXL, потому что они разбивают остальную часть богатого текста, и, видимо, идентификатор символа charOf(decimal_number_code) работает только над базовым набором символов, т. Е. Меньше некоторого значения числового кода. Например, charOf(8217) следует создать правый фигурный апостроф, но когда я попытался код по линииКак искать символ любого символа в символьной строке?

if (charOf(8217) == one_char) 

Я никогда не спички. Я скопировал курчавую цитату из модуля DOORS и проверил через онлайн-анализатор unicode, что это определенно Unicode десятичное значение 8217.

Итак, что мне здесь не хватает? Я просто хочу иметь возможность обнаруживать любой символ символа, правильно его идентифицировать и затем заменять его, например, \textquoteright в выходном потоке.

Моя общая установка работает для более низкого количества символов, так как это работает: (c это один символ вытащил из строки)

thedeg = charOf(176) 
if(thedeg == c) 
     { 
      temp += "$\\degree$" 
     } 

ответ

0

Получил помощь от DXL кодирования экспертов, по меньшей IBM forums.

Цитирование важные вещи (есть некоторые полезные фрагменты кода там, а):

Эй, вы правы это кажется intOf (символов) и charOf (INT) и сделать некоторые по модулю 256 и, следовательно, сократить ничего выше этого. Попробуйте:

int i=8217; 
char c = addr_(i); 
print c; 

Который затем позволяет сравнивать c с любым входным символом.