Поиск суррогатов юникода в Acrobat Pro с использованием javascript

#javascript #unicode #acrobat

#javascript #юникод #acrobat

Вопрос:

Я хотел выполнить поиск японского текста с помощью Acrobat Javascript API ( search.query ). Все работает нормально, за исключением диапазона кодов 0xD800 ~ 0xDFFF (кодовые точки суррогата Юникода). Я попытался скопировать и вставить текст, который я хочу найти, в свой файл .js, а также попытался ввести суррогатные кодовые точки, в любом случае они отображаются как «.» в окне поиска.

Вот мои вопросы:

  1. Почему текст отображается в виде точки в Acrobat?
  2. Есть ли какой-либо способ поиска суррогатов с помощью Acrobat Javascript?

Редактировать: Дополнительная информация: в Acrobat нажмите «Ctrl J», чтобы запустить отладчик и ввести

 search.query("uDBCEuDE2F", "ActiveDoc"); 
  

и нажмите «Ctrl Enter». Вы должны увидеть две точки
(т. Е. ".." ) в окне поиска (по крайней мере, в Acrobat 9). Особенность в том, что если вы наберете

 app.alert("uDBCEuDE2F");
  

он отображает символ (поле), который я хочу найти.

Комментарии:

1. 1) Они отображаются в виде точек в окне поиска, но удается ли поиск в любом случае найти символ? 2) Можете ли вы выполнить поиск этого символа, скопировав его из Блокнота и вставив в окно поиска — т. Е. Работает ли окно поиска для этого диапазона символов вообще?

2. Как насчет (2)? Если вы поместите этот символ в блокнот, затем скопируйте и вставьте его в поле поиска, будет ли он а) правильно вставлен или на нем отображаются точки и б) находит ли он символ в документе?

3. 1) Нет, это не так. Если бы это было так, у меня не было бы проблем. 2) Да, вы можете скопировать его из своего любимого текстового редактора или Word, и он отлично работает (также отображается правильный символ). Я думаю, что проблема связана с реализацией объекта `search» в Acrobat.

4. 3) Что, если вы вставите фактический символ в строку в окне отладки вместо использования escape-последовательностей? Это работает? (Попытка сузить проблему).

5. Т.е. если вы вставите это search.query("􃨯"); ?

Ответ №1:

Вы пробовали вводить правильные пары суррогатов? Отдельные блоки кода в области суррогата не имеют никакого смысла и не могут быть отображены. Ничего общего с Acrobat.

Комментарии:

1. В Acrobat нажмите «Ctrl J», чтобы запустить отладчик, введите search.query("uDBCEuDE2F", "ActiveDoc"); и нажмите «Ctrl Enter». Вы должны увидеть две точки (т. Е. «..») в окне поиска (по крайней мере, в Acrobat 9). Особенность в том, что при вводе app.alert("uDBCEuDE2F"); отображается символ (поле), который я хочу найти.