Swift 中的希伯来语字符
Hebrew Characters in Swift
我有一个应用程序可以下载包含希伯来语字符的网站的 html,这是代码:
let newurl = NSURL(string: "http://www.handasaim.co.il")
var error: NSError?
let html = NSString(contentsOfURL: newurl!, encoding: NSASCIIStringEncoding, error: &error)
if (error != nil) {
println("Whoops, something went wrong")
} else {
println(html)
}
我的问题是希伯来语字符显示为乱码:òøëú ùòåú - éåí ùéùé
如何下载 html 并获得正确的字符?
此服务器的响应编码是"Windows Hebrew"。
我正在使用 CoreFoundation 查找正确的字符串编码等效项:
let newurl = NSURL(string: "http://www.handasaim.co.il")
var error: NSError?
let encoding = CFStringConvertEncodingToNSStringEncoding(UInt32(CFStringEncodings.WindowsHebrew.rawValue))
let html = String(contentsOfURL: newurl!, encoding: encoding, error: &error)
结果:
תיכון להנדסאים הרצליה ליד אוניברסיטת תל אביב
Swift 2次更新
if let newurl = NSURL(string: "http://www.handasaim.co.il") {
let encoding = CFStringConvertEncodingToNSStringEncoding(UInt32(CFStringEncodings.WindowsHebrew.rawValue))
if let html = try? String(contentsOfURL: newurl, encoding: encoding) {
print(html)
}
}
注意:查看 Martin R 的 method 以自动检测服务器响应的编码。我的解决方案是用 curl 检查 headers。
我有一个应用程序可以下载包含希伯来语字符的网站的 html,这是代码:
let newurl = NSURL(string: "http://www.handasaim.co.il")
var error: NSError?
let html = NSString(contentsOfURL: newurl!, encoding: NSASCIIStringEncoding, error: &error)
if (error != nil) {
println("Whoops, something went wrong")
} else {
println(html)
}
我的问题是希伯来语字符显示为乱码:òøëú ùòåú - éåí ùéùé
如何下载 html 并获得正确的字符?
此服务器的响应编码是"Windows Hebrew"。
我正在使用 CoreFoundation 查找正确的字符串编码等效项:
let newurl = NSURL(string: "http://www.handasaim.co.il")
var error: NSError?
let encoding = CFStringConvertEncodingToNSStringEncoding(UInt32(CFStringEncodings.WindowsHebrew.rawValue))
let html = String(contentsOfURL: newurl!, encoding: encoding, error: &error)
结果:
תיכון להנדסאים הרצליה ליד אוניברסיטת תל אביב
Swift 2次更新
if let newurl = NSURL(string: "http://www.handasaim.co.il") {
let encoding = CFStringConvertEncodingToNSStringEncoding(UInt32(CFStringEncodings.WindowsHebrew.rawValue))
if let html = try? String(contentsOfURL: newurl, encoding: encoding) {
print(html)
}
}
注意:查看 Martin R 的 method 以自动检测服务器响应的编码。我的解决方案是用 curl 检查 headers。