希伯来字符在Swift中(Hebrew Characters in Swift)

编程入门 行业动态 更新时间:2024-10-21 19:51:50
希伯来字符在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) }

我的问题是,希伯来字符显示为gibrish: òøëúùòåú - éåíùéùé

如何下载html并获取正确的字符?

I have an app that downloads the html of a website the contains characters in hebrew, this is the code:

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) }

My problem is that the hebrew characters show up as gibrish: òøëú ùòåú - éåí ùéùé

How can I download the html and get the correct characters?

最满意答案

该服务器的响应编码是“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的方法来自动检测服务器响应的编码。 我的解决方案是用卷曲检查标题。

This server's response encoding is "Windows Hebrew".

I'm using CoreFoundation to find the correct String encoding equivalent:

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)

Result:

תיכון להנדסאים הרצליה ליד אוניברסיטת תל אביב

Swift 2 update

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) } }

Note: have a look at Martin R's method to detect the encoding of the server response automatically. My method for this solution was to inspect the headers with curl.

更多推荐

本文发布于:2023-08-07 10:28:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1463752.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:希伯来   字符   Swift   Hebrew   Characters

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!