我编写了一个脚本,将文本(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文件:它是
答案 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,但我建议你尽量不这样做。