【问题标题】:Convert unreadable characters in to Unicode characters将不可读的字符转换为 Unicode 字符
【发布时间】:2012-09-23 15:16:01
【问题描述】:

当我从 opengraph 调用一些 facebook 信息时,我会得到一些看起来像这样的名字。

\u0d94\u0db1\u0dca\u0dbd\u0dd2 \u0dc3\u0dd2\u0db1\u0dca\u0d9c\u0dca\u0dbd\u0dd2\u0dc2\u0dca

有没有办法使用 PHP 或 Javascript 将它们转换为可读的 unicode 字符? 首选PH​​P。谢谢

【问题讨论】:

  • 您是否搜索过这个问题是否已经得到解答?见,例如this question
  • @cjh 它在 javascript 中,我更喜欢使用 PHP 的方式

标签: php javascript


【解决方案1】:

使用json_decode():

$str = '\u0d94\u0db1\u0dca\u0dbd\u0dd2';
echo json_decode('"'.$str.'"'); // ඔන්ලි

Codepad Example

【讨论】:

    【解决方案2】:

    以下代码允许您对字符进行解码以及在必要时对其重新编码

    代码

    if (!function_exists('codepoint_encode')) {
    
        function codepoint_encode($str) {
            return substr(json_encode($str), 1, -1);
        }
    
    }
    
    if (!function_exists('codepoint_decode')) {
    
        function codepoint_decode($str) {
            return json_decode(sprintf('"%s"', $str));
        }
    
    }
    

    如何使用

    header('Content-Type: text/html; charset=utf-8'); 
    
    var_dump(codepoint_encode('ඔන්ලි'));
    var_dump(codepoint_encode('සින්ග්ලිෂ්'));
    
    var_dump(codepoint_decode('\u0d94\u0db1\u0dca\u0dbd\u0dd2'));
    var_dump(codepoint_decode('\u0dc3\u0dd2\u0db1\u0dca\u0d9c\u0dca\u0dbd\u0dd2\u0dc2\u0dca'));
    

    输出

    string(30) "\u0d94\u0db1\u0dca\u0dbd\u0dd2"
    string(60) "\u0dc3\u0dd2\u0db1\u0dca\u0d9c\u0dca\u0dbd\u0dd2\u0dc2\u0dca"
    string(15) "ඔන්ලි"
    string(30) "සින්ග්ලිෂ්"
    

    【讨论】:

      猜你喜欢
      • 2019-05-12
      • 2018-09-19
      • 1970-01-01
      • 2016-12-20
      • 2017-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多