首页 > 解决方案 > 如何将 utf-8 字符串解码为实际文本?

问题描述

为了这个特定目的,我正在使用带有 php 5.6 和 mysql db 的 codeigniter。我想将来自不同语言的字符串存储到数据库并稍后检索它们。我在这里面临的问题是,当我试图获取值时,它不是给出确切的文本,而是以以下格式显示一些内容。

%E0%A4%A8%E0%A4%AE%E0%A4%B8%E0%A5%8D%E0%A4%A4%E0%A5%87

这是一些测试代码

function charset($get = NULL){
   $direct = "नमस्ते";

$this->load->database();    
  if($get != NULL){
        $this->db->insert('test', array("name"=>"get", "value"=>$get));
        $this->db->insert('test', array("name"=>"direct", "value"=>$direct));
    }
    $results = $this->db->get('test')->result_array();

    echo "<pre>";
    print_r($results);

}

这是结果

Array
(
    [0] => Array
    (
        [id] => 16
        [name] => get
        [value] => %E0%A4%A8%E0%A4%AE%E0%A4%B8%E0%A5%8D%E0%A4%A4%E0%A5%87
    )

[1] => Array
    (
        [id] => 17
        [name] => direct
        [value] => नमस्ते
    )


)

您将如何获得(或转换)确切的单词而不是 ut8 编码的字符串?

标签: phpmysqlcodeigniter

解决方案


我已经检查了您的代码,如下所示,它返回了正确的值:

$variable = '%E0%A4%A8%E0%A4%AE%E0%A4%B8%E0%A5%8D%E0%A4%A4%E0%A5%87';
echo urldecode($variable);

希望我正确理解了您的代码。


推荐阅读