0

我正在开发一个支持 4 种不同语言的应用程序。其中一种语言是阿拉伯语。在整个应用程序中使用 OpenSans 字体

我得到低于 json 响应,

"card_description" = "\U00d9\U0160\U00d9\U2026\U00d9\U0192\U00d9\U2020\U00d9\U0192 \U00d8\U00b1\U00d9\U0192\U00d9\U02c6\U00d8\U00a8 \U00d8\U00a7\U00d9\U201e\U00d8\U00af\U00d8\U00b1\U00d8\U00a7\U00d8\U00ac\U00d8\U00a9 \U00d9\U02c6\U00d8\U00a7\U00d9\U201e\U00d8\U00aa\U00d9\U2020\U00d9\U201a\U00d9\U201e \U00d8\U00a8\U00d9\U2021\U00d8\U00a7 \U00d8\U00b9\U00d8\U00a8\U00d8\U00b1 \U00d8\U00a7\U00d9\U201e\U00d9\U0192\U00d8\U00ab\U00d9\U0160\U00d8\U00b1 \U00d9\U2026\U00d9\U2020
\n\U00d8\U00a7\U00d9\U201e\U00d9\U2026\U00d8\U00af\U00d9\U2020 \U00d9\U02c6\U00d8\U00a7\U00d9\U201e\U00d8\U00a8\U00d9\U201e\U00d8\U00af\U00d8\U00a7\U00d8\U00aa \U00d9\U0081\U00d9\U0160 \U00d8\U00a7\U00d9\U201e\U00d8\U00af\U00d8\U00a7\U00d9\U2020\U00d9\U2026\U00d8\U00a7\U00d8\U00b1\U00d9\U0192";

通过将其转换为 UTF8String,我在模拟器中运行应用程序后得到以下结果。

在此处输入图像描述

使用下面的代码在标签中显示文本,

[cell.btnDescription setTitle:[NSString stringWithUTF8String:[[[arrCards objectAtIndex:indexPath.row] valueForKey:wCARD_DESC] cStringUsingEncoding:NSUTF8StringEncoding]] forState:UIControlStateNormal];

我没有得到正确的阿拉伯语结果。

谁能帮我?

提前致谢。

4

2 回答 2

1

我认为您不需要转换为 UTFString。只需简单地使用应该用于其他语言的下面的代码:

[cell.btnDescription setTitle:[[arrCards objectAtIndex:indexPath.row] valueForKey:wCARD_DESC] forState:UIControlStateNormal];

并且不用担心 JSON 响应阿拉伯文本只会在日志中显示。

于 2017-04-06T10:44:25.867 回答
1

您不需要执行以下代码来解密阿拉伯文内容。

[cell.btnDescription setTitle:[NSString stringWithUTF8String:[[[arrCards objectAtIndex:indexPath.row] valueForKey:wCARD_DESC] cStringUsingEncoding:NSUTF8StringEncoding]] forState:UIControlStateNormal];

整个事情都来自 JSON,他们会为你解码/编码,我的阿拉伯语应用程序也遇到了同样的问题,JSON 开发人员所做的是他们添加了一个标头函数,即

  1. header('Content-type: application/json;charset=utf-8');

并通过下面的这个函数解码值:

  1. html_entity_decode

按照下面的图片,它可能会帮助你。

在此处输入图像描述

谢谢

于 2017-04-06T11:38:39.540 回答