我正在使用 RubyMotion 2.34、Motion-bundler 0.2.1 和 rubysl-rexml 2.4.1 开发 iOS7。
在尝试解析来自服务器的 XML 响应时,我在 REXML 的编码部分中遇到了以下错误。但是,我还执行了以下操作来隔离问题,这是 REXML 库对给出的字符串所做的:
def content
@s = @response.body.to_s
puts @s.encoding
@s.encode("UTF-8")
end
@response
电话的回报在哪里AFMotion::HTTP.get("http://....")
。它只是一个简单的 XML 字符串,其中只有普通的 US-ASCII 字符。我收到以下错误:
2014-10-02 18:34:14.714 Promotion-motion-kit[44375:1346884] *** 由于未捕获的异常“RuntimeError”而终止应用程序,原因:“http_client.rb:17:in
block in content': this operation cannot be performed with encoding
UTF-8”,因为 Apple 的 ICU不支持它(RuntimeError)来自 http_client.rb:15:in `content'
当我将代码更改为:
@s.encode("US-ASCII")
String#encode
所以,只要它是一个有效的编码名称,我给出的似乎并不重要。
更新:我使用的任何字符串都会引发此错误,例如:
"hello".encode("UTF-8")
没有人知道如何纠正这种情况吗?