当前位置: 首页 > 面试题库 >

使用Swift取消转义Unicode字符,即\ u1234

百里涛
2023-03-14
问题内容

在swift的xcode 6中使用JSON时出现特殊字符问题

我在Cocoa /目标C中找到了这些代码,以解决转换重音符号时遇到的一些问题,但无法使其在Swift中工作。有什么使用建议吗?最好的替代建议也很酷

谢谢

NSString *input = @"\\u5404\\u500b\\u90fd";
NSString *convertedString = [input mutableCopy];

CFStringRef transform = CFSTR("Any-Hex/Java");
CFStringTransform((__bridge CFMutableStringRef)convertedString, NULL, transform, YES);

NSLog(@"convertedString: %@", convertedString);
// prints: 各個都, tada!

问题答案:

在Swift中,这非常相似,尽管您仍然需要使用Foundation字符串类:

let transform = "Any-Hex/Java"
let input = "\\u5404\\u500b\\u90fd" as NSString
var convertedString = input.mutableCopy() as NSMutableString

CFStringTransform(convertedString, nil, transform as NSString, 1)

println("convertedString: \(convertedString)")
// convertedString: 各個都

(最后一个参数使我Boolean陷入循环,直到我意识到在Swift中是UInt的类型别名-对于这些类型的方法,Objective-
C中的YES在Swift中变为1。)



 类似资料:
  • 我有一个统一码转义字符串: 我想将此字符串转换为unicode未转义的版本 我该怎么做?

  • 我需要将输入字符串中的unicode字符转义为UTF-16或UTF-32转义序列。例如,输入字符串文字< code >“吃,喝,愛" 应该转义为< code >“吃喝,\ u611b”。以下是排序表中的规则: Escape | Unicode码位 “\u” 十六进制 十六进制 十六进制|U 到 U FFFF 范围内的 Unicode 代码点(包括与编码的十六进制值相对应)。 '\U'HEX HEX

  • 问题内容: 例如,如果我有一个 unicode 字符串,则可以将其编码为 ASCII 字符串,如下所示: 但是,我有例如以下 ASCII 字符串: …我想将其转换为与上述第一个示例相同的 ASCII 字符串: 问题答案: 我花了一些时间才弄清楚这一点,但此页面的最佳答案是: 还有一个“ raw-unicode-escape”编解码器,用于处理另一种指定Unicode字符串的方法-有关更多详细信息,

  • 问题内容: 我正在使用Python 2.6.5。我的代码要求使用“大于或等于”符号。它去了: 为什么会出现此错误?有正确的方法吗?我需要使用该功能。 问题答案: 只需将第二个字符串也设为unicode字符串

  • 问题内容: 在解析包含unicode转义序列的json字符串时,存在一个长期存在的错误。似乎需要修复该错误,这种错误可能很快就不会发生,因此我正在寻找一种在R中创建解决方法的方法,该方法在将序列提供给json解析器之前先取消序列化。 一些上下文:json数据始终是unicode,默认情况下使用,因此通常不需要转义。但是出于历史原因,json确实支持转义的unicode。因此json数据 和 是等效