applescript textedit字符

时间:2014-08-15 16:30:20

标签: applescript textedit

我编写了一个脚本,将文本(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

示例测试数据将是使用仅包含4个字符的textedit创建的RTF文件:它是

2 个答案:

答案 0 :(得分:0)

ASCII 213是一个有角度的单引号(倾向于它)vs 39,这是一个单引号(没有倾斜,只是垂直)

此处有更多详情...... http://en.wikipedia.org/wiki/Quotation_mark_glyphs

答案 1 :(得分:0)

TextEdit和AppleScript以及Mac和Web中的文本是UTF-8,而不是ASCII。如果你把它作为UTF-8来处理,你将不会得到意想不到的结果。

  

'(单引号)字符

这不是单引号,而是单一的素数。这是一个“程序员的引用”,这就是它在传统计算机键盘上突出显示的原因。该字符仅属于计算机代码。它绝不应出现在任何书面文本中。

  

我得到一个ID = 8217

这是一个撇号。这正是你想要的一个词,例如“不要”。 “8217”是撇号的UTF-8代码。

另请注意,当您与TextEdit交谈时,文本是样式文本(也称为富文本)。您将文本作为对象处理,而不是文本字符串。这就是为什么你可以向TextEdit询问角色的“font”属性。

如果您只想要文本本身,请将文档文本设置为变量:

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

我不明白为什么你要把它转换成ASCII,但我建议你尽量不这样做。