如何将印度字符转换为 Unicode 转义字符
Posted
技术标签:
【中文标题】如何将印度字符转换为 Unicode 转义字符【英文标题】:How to convert Indic Characters to Unicode Escaped characters 【发布时间】:2016-04-27 12:58:26 【问题描述】:我目前正在为 android 设计一个移动应用程序。文本和内容采用当地印度语泰米尔语。对于 Welcome,相当于泰米尔语的翻译是:வணக்கம்
。由于 Android 无法显示印度文字,我正在使用名为 javascript String Escape 的服务对其进行转换。
所以这是这样工作的:
输入:வணக்கம்
输出: \u0BB5\u0BA3\u0B95\u0BCD\u0B95\u0BAE\u0BCD
我如何使用 JavaScript 或 php 来实现这一点,因为我有大量的文本需要转换并转换成 JSON。示例 JSON:
"title": "\u0BAE\u0BB0\u0BC1\u0BA4\u0BCD\u0BA4\u0BC1\u0BB5\u0BB0\u0BBF\u0BA9\u0BCD \u0BAA\u0BC6\u0BAF\u0BB0\u0BCD #1",
"image": "http://www.exceptnothing.com/doctors/doc11.png",
"rating": "\u2713 \u0B87\u0BAA\u0BCD\u0BAA\u0BC7\u0BBE\u0BA4\u0BC1 \u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BB2\u0BBE\u0BAE\u0BCD",
"rating2": "",
"releaseYear": "\u0BA8\u0BBE\u0BB3\u0BCD \u0BAE\u0BC1\u0BB4\u0BC1\u0BB5\u0BA4\u0BC1\u0BAE\u0BCD \u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BB2\u0BBE\u0BAE\u0BCD",
"genre": ["\u25B6 \u0B87\u0BA4\u0BAF \u0BA8\u0BBF\u0BAA\u0BC1\u0BA3\u0BB0\u0BCD"]
我也想知道如何解码上面的 JSON 并将其显示为வணக்கம்
。提前致谢。
【问题讨论】:
看来你需要escape()
。
@PraveenKumar 就这么简单吗?
【参考方案1】:
您正在寻找的是 JavaScript 中的 escape()
和 PHP 中的 json_encode()
。打开控制台并输入以下内容:
escape("வணக்கம்")
你会得到以下回报:
"%u0BB5%u0BA3%u0B95%u0BCD%u0B95%u0BAE%u0BCD"
所以第一个问题解决了。要从上面取回原来的வணக்கம்
,请使用unescape()
:
unescape("%u0BB5%u0BA3%u0B95%u0BCD%u0B95%u0BAE%u0BCD");
注意:需要注意的一点是,
escape()
和unescape()
均已弃用。所以你需要使用encodeURIComponent
和decodeURIComponent
预览
服务器端更新
对于JSON的编码和解码,最好使用PHP的内置函数。相同的escape()
也可以在 PHP 中用作json_encode()
,它们都给出相同的结果。
json_encode("வணக்கம்");
=> "%u0BB5%u0BA3%u0B95%u0BCD%u0B95%u0BAE%u0BCD"
另外,请参阅JavaScript: Escaping Special Characters 了解更多信息。希望这可以帮助。 :)
【讨论】:
这就是为什么你可以使用未弃用的 en/decodeURIComponent以上是关于如何将印度字符转换为 Unicode 转义字符的主要内容,如果未能解决你的问题,请参考以下文章
Python 2.7:如何将字符串中的 unicode 转义转换为实际的 utf-8 字符
将 Python 转义的 unicode 序列转换为 UTF-8
使用 VB Script RegExp 对象将 '\uA90F' 形式的 JSON Unicode 转义序列转换为 XML 字符引用