我已经编写了一个脚本,它将textedit中的文档字符(RTF)放入一个列表变量中,运行得很好,但是我得到的一些字符并不是我所期望的。例如‘(单引号)字符。我期望的是id=39 (ASCII39),我得到了一个ID=8217,如果我将它转换成ASCII码(将y_ascii_num设置为ASCII码x),我得到一个ASCII213。
我是不是错过了某种转换?
下面是我用来获取字符的代码:
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示例测试数据将是使用textedit创建的RTF文件,其中只包含4个字符:
发布于 2014-08-16 01:26:48
ASCII 213是一个有角度的单引号(带有斜引号)与39,这是一个直接的单引号(没有斜引号,只是垂直的)
更多细节在这里...http://en.wikipedia.org/wiki/Quotation_mark_glyphs
发布于 2014-08-19 18:39:10
TextEdit、AppleScript、Mac和网络上的文本是UTF8,而不是ASCII码。如果将其作为UTF-8处理,将不会得到意想不到的结果。
‘(单引号)字符
这不是单引号,这是单质数。这是一句“程序员的名言”,这就是为什么它在传统的计算机键盘上有突出的特色。这个字符只属于计算机代码。它不应该出现在任何书面文本中。
和我得到了一个ID=8217
这是一个撇号。这正是你想要的单词,比如“不要”。“8217”是撇号的UTF-8代码。
还要记住,当您与TextEdit交谈时,文本是带样式的文本(也称为富文本)。并且您将文本作为对象处理,而不是文本字符串。这就是为什么你可以向TextEdit请求一个字符的“字体”属性。
如果您只想要文本本身,则将文档的文本设置为变量:
tell application "TextEdit"
set theUTF8Text to the text of document 1
end tell我不明白你为什么要把它转换成ASCII,但我建议你尽量不要这样做。
https://stackoverflow.com/questions/25330355
复制相似问题