簡體   English   中英

codeigniter 4 / 如何從 mysql db 中獲取 select 表情符號並在視圖中顯示

[英]codeigniter 4 / how to select emoji from mysql db and display in view

我有一張名為 mh_country 的表。 這是 phpmyadmin 的一行。 您可以看到表情符號正確顯示了阿富汗國旗。

獲取表情符號的數據庫快照

'emoji' 的 mysql 中的編碼是正確的,如下所示;

表情符號的mysql結構

我想在我的視圖中顯示表情符號。 首先,這是我獲取“表情符號”的方法:

function display_country_dialing_codes(){
    $model = new \App\Models\MhCountryModel;
    $builder = $model->builder('mh_country');
    $builder->select('country_name, phonecode, emoji');
    $query   = $builder->get();
    $result  = $query->getResult();
    return $result;
}

現在我正在嘗試在我的視圖中顯示標志;

            $x = display_country_dialing_codes();
            echo $x[0]->emoji;

但我得到的只是'??'。

請問如何顯示表情符號?

這個問題有一個非常簡單的解決方案:

而不是使用varchar ,將表情符號的數據類型更改為blob甚至tinyblob

圖像可以作為字符串(圖像名稱、路徑等)或在您的情況下作為二進制字符串( blob或 tinyblob,也可用於表情符號)存儲在數據庫中:

來自鏈接的文檔:

BLOB 值被視為二進制字符串(字節字符串)。 它們具有二進制字符集和排序規則,比較和排序基於列值中字節的數值。 TEXT 值被視為非二進制字符串(字符串)。 它們具有二進制以外的字符集,並且基於字符集的排序規則對值進行排序和比較。

經過測試,它可以工作

在此處輸入圖像描述

編輯您的數據庫配置文件

app\Config\Database.php

並在您的數據庫連接下將charset設置為utf8mb4

'charset'  => 'utf8mb4',

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM