如何将印度字符转换为 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() 均已弃用。所以你需要使用encodeURIComponentdecodeURIComponent

预览

服务器端更新

对于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 字符引用

你能避免 Gson 将“<”和“>”转换为 unicode 转义序列吗?

PHP:恢复转义的Unicode字符[重复]

“重新捕获”转义字符