Swift,php和unicode字符

我正在使用url请求从MySQL接收数据。
数据以JSON格式接收。
这 数据还包括unicode字符(例如希腊字母)。</ p>

然后,在Swift中,我使用JSONSerialization,如下所示:</ p>

  if 让json =尝试JSONSerialization.jsonObject(with:data!,options:[])为?  [String:Any] {
</ code> </ pre>

json的键是数字索引。
然后我采用这样的嵌套字典:</ p>

< pre> 让dictionary = json [key]为? [String:Any]
</ code> </ pre>

然后我分配:</ p>

  var content = dictionary![“content”] 如! 字符串
</ code> </ pre>

此内容中包含unicode字符。</ p>

Unicode字符如下所示(如果我打印字典):\ n \ U03b1(对于希腊字母Alpha)。</ p>

问题是Swift无法读取这些字符,因为Swift期望unicode字符是这样的:\ u {03b1}。</ p >

内容的值是一个空字符串:“”</ p>

我如何解决这个问题?
要么PHP以Swift“理解的方式发送这些字符 “他们,或者让Swift以正确的方式解码传入的数据。</ p>

任何想法?</ p>

谢谢!</ p>
</ DIV>

展开原文

原文

I am using a url request to receive data from MySQL. The data is received in a JSON format. This data also includes unicode characters (for example greek letters).

Then, in Swift, I am using JSONSerialization like this:

if let json = try JSONSerialization.jsonObject(with: data!, options: []) as? [String: Any] {

The keys of json are number indices. Then I take a nested dictionary like this:

let dictionary = json[key] as? [String: Any]

Then I assign:

var content = dictionary!["content"] as! String

This content has unicode characters inside it.

Unicode characters appear like this (if I print dictionary): \U03b1 (for the greek letter Alpha).

The problem is that Swift cannot read those characters because Swift expects unicode characters to be like this: \u{03b1}.

The value of content is an empty string: ""

How can I solve this? Either have PHP send those characters in the way the Swift "understands" them, or having Swift decoding the incoming data in the proper way.

Any ideas?

Thanks!

dscrb00804
dscrb00804 我无法猜测。请编辑您的问题并发布一个可重复性最小的示例。
一年多之前 回复
duanfan5012
duanfan5012 无法将“__NSCFConstantString”类型的值(0x102654ec0)转换为“Swift.String.UTF16View”
一年多之前 回复
duangu9173
duangu9173 什么错误?请更具体一点。
一年多之前 回复
dqv2743
dqv2743 谢谢!我没想到。我只是在将其分配给字符串时收到错误:varcontent=dictionary[“content”]as!串。我应该以不同方式分配吗?
一年多之前 回复
doudaifu6083
doudaifu6083 很可能这只是默认情况下打印字典(或数组)的工件。提取字符串值并打印出来。
一年多之前 回复
dqbhdsec59405
dqbhdsec59405 它确实返回\u03b1但是Swift无法读取这个正确的String实体,因为它不理解\u没有花括号。任何的想法?
一年多之前 回复
dsg7513
dsg7513 Swift和JSONSerialization可以毫无问题地处理Unicode转义。但是,服务器应该使用小写u发送\u03b1。
一年多之前 回复

1个回答



我确实对多种货币符号有同样的问题。 API团队现在正在传递'\ u0024',它解决了Swift中的问题。 也许你可以从API方面尝试相同的方法。</ p>
</ div>

展开原文

原文

I do have the same kind of issue for multiple currency symbols. API team is passing now '\u0024' and it has resolved issue in Swift. May be you can try same from API side.

dongshan8194
dongshan8194 你是怎么解决的?
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问