символ текстового редактирования applescript

Я написал скрипт, который помещает символы документа (RTF) из textedit в переменную списка. Это отлично работает, но некоторые символы, которые я получаю, не соответствуют моим ожиданиям. Примером может служить символ ' (одинарная кавычка). ожидал id = 39 (ASCII 39), и я получаю ID = 8217, если я конвертирую его в ASCII (устанавливаю y_ascii_num в число ASCII x), я получаю ASCII 213.

Я пропустил что-то вроде преобразования?

вот код, который я использую для получения символов:

tell application "TextEdit"
    activate
    open gp_file_in
    set gp_file_in_name to name of document 1
    tell document 1
        set gp_list_char to get characters
        set gp_list_font_char to get font of characters
        set gp_list_size_char to get size of characters 
    end tell

    close document 1
end tell

Примером тестовых данных будет файл RTF, созданный с помощью textedit, содержащий всего 4 символа: это


person teefers    schedule 15.08.2014    source источник


Ответы (2)


ASCII 213 — это наклонная одинарная кавычка (с наклоном к ней) по сравнению с 39, которая представляет собой прямую одинарную кавычку (без наклона, просто вертикально)

Подробнее здесь... http://en.wikipedia.org/wiki/Quotation_mark_glyphs

person ThrowBackDewd    schedule 15.08.2014

Текст в TextEdit и AppleScript, на Mac и в Интернете — это UTF-8, а не ASCII. Если вы работаете с ним как с UTF-8, вы не получите неожиданных результатов.

символ ' (одинарная кавычка)

Это не одна кавычка, это простое число. Это «цитата программиста», поэтому она занимает видное место на устаревшей компьютерной клавиатуре. Этот символ принадлежит только компьютерному коду. Он никогда не должен появляться ни в одном письменном тексте.

и я получаю ID=8217

Это апостроф. Это именно то, что вам нужно, например, для такого слова, как «не». «8217» — это код UTF-8 для апострофа.

Также имейте в виду, что когда вы общаетесь с TextEdit, текст представляет собой стилизованный текст (также известный как форматированный текст). И вы имеете дело с текстом как с объектами, а не как с текстовыми строками. Вот почему вы можете запросить у TextEdit свойство «шрифт» символа.

Если вам просто нужен сам текст, установите текст документа в переменную:

tell application "TextEdit"
    set theUTF8Text to the text of document 1
end tell

Я не понимаю, почему вы пытаетесь преобразовать его в ASCII, но я рекомендую вам стараться этого не делать.

person Simon White    schedule 19.08.2014