如何将Indic字符转换为Unicode转义字符

7

我目前正在设计一款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() - Praveen Kumar Purushothaman
@PraveenKumar 这么简单吗? - Anirudh M
1个回答

3
你需要的是 JavaScript 中的 escape() 和 PHP 中的 json_encode()。打开控制台并输入以下内容:
escape("வணக்கம்")

您将得到以下回复:

"%u0BB5%u0BA3%u0B95%u0BCD%u0B95%u0BAE%u0BCD"

第一个问题已经解决。要从上面的内容中获取原始的வணக்கம்,请使用{{link1: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: 转义特殊字符以获取更多信息。希望这可以帮到你。:)

这就是为什么你可以使用en/decodeURIComponent,它并未被弃用。 - mplungjan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接