在我的(defn my-test-fixture [f]
(mount/start)
(f))
(use-fixtures :once my-test-fixture)
中,我有一些重音字符和html标签,例如NSString
。我想在<i></i>
中显示带有文本属性的文件。
当我构建attrStr时,我使用:
NSTextField
我显示的文字如下:
NSMutableAttributedString *attrStr = [[NSMutableAttributedString alloc] initWithHTML:[text dataUsingEncoding:NSUTF8StringEncoding]
options:@{NSWebPreferencesDocumentOption : webPreferences}
documentAttributes:NULL];
但是这需要我知道someTextField.attributedStringValue = attrStr;
的编码,但问题是我不知道编码。那么如何在不知道编码的情况下构建属性字符串呢?
答案 0 :(得分:0)
您不需要知道NSString
的编码 - 它是一个Objective-C字符串。 dataUsingEncoding:
州的定义,重点补充:
返回一个
NSData
对象,其中包含使用给定编码编码的接收器的表示。
此方法将内部使用的编码NSString
转换为指定的编码 - 因此结果就是包含UTF8字符串字节的NSData
。 / p>
如果您看到无效结果,则问题可能是您创建原始NSString
时的问题?
HTH
附录我现在看到你先问this question(我添加了答案 - 基本上你需要知道或猜测)。为什么你首先将文件读入NSString
?只需将其直接读入NSData
,然后让HTML解析器对其进行排序(它将读取HTML编码标记或默认为编码)。
答案 1 :(得分:0)
最后,我发现如果我在上面使用NSUnicodeStringEncoding
,重音字符将会正确显示。