gpt4 book ai didi

swift - 如何在 swift 中将带变音符号的 AttributedString 保存为正确的 RTF?

转载 作者:行者123 更新时间:2023-11-30 11:50:39 25 4
gpt4 key购买 nike

我有一个 AttributedString,我用名称和地址以编程方式生成它。两者都可以包含变音符号,例如 é、ü、î 等。它们在 NSTextView 中正确显示(这是在 macOS 上)但是当我将其另存为 RTF 文档时,Apple 并没有用正确的 RTF 编码替换变音符号,因此 Grüter 突然变成了 Grüter。 ü 的正确 rtf 编码是 \'fc

我仔细查看了Apple的RTF Files and Attributed StringsFormatted Documents and Attributed Strings docs 和 NSCharacterEncodingDocumentAttribute 无济于事。我已经向 RTF 标签编码器写入了一个基本的 unicode 值,但目前我仍然使用复合 unicode 标量,例如 💐

也许我遗漏了一些完全明显的东西,或者这是 Apple 的 RTF 编写实现中的一个错误?

最佳答案

好的,我在 https://github.com/axello/AttributedRTF 创建了一个 Playground ,找出我做错了什么。我想通了。

首先,我做错了什么:我将 RTF 文本导入到字符串中,以操作某些标签并插入新文本。我在字符串级别执行此操作,以保持 RTF 标签完整。这适用于所有标签和 ASCII 文本。

但是,当我随后导出该字符串时,所有插入的带有变音符号的字符串都不会转换为正确的 RTF 代码,因为它假设该字符串只是一堆数据。

在我的 Playground 上你可以玩这个:

  • localString():只需将 AttributedString 导出为 RTF;
  • templateString() :读取字符串中的 RTF 模板,进行操作,然后写入 RTF。 这是错误的
  • templateAttributedString():将 RTF 模板读入 AttributedString,进行操作,并将 AttributedString 导出为 RTF。

简而言之:我需要导入的不是字符串,而是 AttributedString,并插入 AttributedString,这稍微麻烦一些。然后我可以将 AttributedString导出为 RTF,并且变音符号会正确转换为 RTF。

关于swift - 如何在 swift 中将带变音符号的 AttributedString 保存为正确的 RTF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48355968/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com