как декодировать строку utf-8 в реальный текст? - PullRequest
0 голосов
/ 13 февраля 2019

Я использую codeigniter с php 5.6 и mysql db для этой конкретной цели.Я хочу хранить строки с разных языков в базе данных и получить их позже.Проблема, с которой я здесь сталкиваюсь, заключается в том, что, когда я пытаюсь получить значение, вместо того, чтобы выдавать точный текст, он показывает что-то в следующем формате.

% 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?

Ответы [ 2 ]

0 голосов
/ 13 февраля 2019

Я проверил ваш код, как показано ниже, и он возвращает правильное значение:

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

Надеюсь, я правильно понял ваш код.

0 голосов
/ 13 февраля 2019

Здесь играют несколько вещей

MySQL

В MySQL вам необходимо настроить соединение / клиент для его использования:

SET NAMES 'utf8'

В PHP это может выглядеть примерно так:

$this->db->query("SET NAMES 'utf8'");

HTML

При выводе в HTML вам также придется сообщить клиенту (браузер) какие данные вы передаете:

header('Content-Type: text/html; charset=utf-8');

и / или в вашем теле HTML:

<html>
    <head>
        <meta charset="utf-8" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...