使用 AppleScript 计算字符串中带有变音符号的字符
Counting Characters with Diacritics in String using AppleScript
我正在编写 AppleScript 来计算 Unicode 字符串中的字符数。该脚本运行良好,但它不计算阿拉伯变音符号,例如:
considering diacriticals, hyphens and punctuation
set count_a to count characters of ("فما")
set count_b to count characters of ("فَمّا")
end considering
这给出 count_a = 3,这是正确的。但是,它也给出 count_b = 3,这是错误的! count_b 应该是 5,因为单词中添加了两个额外的变音符号。
知道如何让 AppleScript 计算变音符号吗?
AppleScript 正在按设计工作。与 Swift 和其他对 Unicode 有很好理解的语言一样,AppleScript 计算字形,而不是代码点。
如果出于某种原因你真的需要计算原始代码点,请使用 AppleScript-ObjC 桥将其转换为 NSString(它又老又笨,没有字形的概念)并计算它。请记住,原始代码点计数也可能因给定文本使用的规范化形式而异。除了用于存储它的字节数之外,它确实不是衡量任何其他内容的有用指标。
我正在编写 AppleScript 来计算 Unicode 字符串中的字符数。该脚本运行良好,但它不计算阿拉伯变音符号,例如:
considering diacriticals, hyphens and punctuation
set count_a to count characters of ("فما")
set count_b to count characters of ("فَمّا")
end considering
这给出 count_a = 3,这是正确的。但是,它也给出 count_b = 3,这是错误的! count_b 应该是 5,因为单词中添加了两个额外的变音符号。
知道如何让 AppleScript 计算变音符号吗?
AppleScript 正在按设计工作。与 Swift 和其他对 Unicode 有很好理解的语言一样,AppleScript 计算字形,而不是代码点。
如果出于某种原因你真的需要计算原始代码点,请使用 AppleScript-ObjC 桥将其转换为 NSString(它又老又笨,没有字形的概念)并计算它。请记住,原始代码点计数也可能因给定文本使用的规范化形式而异。除了用于存储它的字节数之外,它确实不是衡量任何其他内容的有用指标。