【问题标题】:How to Fetch Data in Hindi and Gujarati Language in MySQL?如何在 MySQL 中获取印地语和古吉拉特语的数据?
【发布时间】:2017-02-16 01:26:52
【问题描述】:

在我的代码下面,我尝试了这个解决方案,但没有成功。我还为印地语提供 utf8_unicode_ci,在数据库整理中为古吉拉特语提供 utf8_bin

请帮助我如何获取印地语和古吉拉特语数据。

 <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<?php
session_start();
        require_once('config.php'); 
        $JSONoutput = array();
        $q=mysqli_query($con,"SELECT * FROM tbl_Hindi");


    header('Content-Type: text/html; charset=UTF-8');
            while($rs=mysqli_fetch_assoc($q))
            {
                $JSONoutput['SMS'][] = array("ID"=>$rs['ID'],"Message"=>$rs['Message']);
            }
            print(json_encode($JSONoutput));
    ?>

输出:

{"SMS":[{"ID":"1","Message":"?? ????? ?? ??? ???? ??, ???? ?? ???? ??? ?? ????? ?? ?? ???? ?? ??????"},{"ID":"2","Message":"???? ????? : ??? ???? ?? ? ????? ????? : shopping ???? ?? ??? ???? ????? : : ???? ?? ???? ? ????? ????? : ???? ??? ??? ?? Gf ?? ? ???? ????? : ?? ?? ??? ??? ?? ? ????? ????? : ?? ???? "}]}

【问题讨论】:

标签: php mysql arrays json


【解决方案1】:
  1. 你的sql表更改字段格式更改语言集合 utf16_general_ci 所有语言都接受。

ALTER TABLE tbl_Hindi CHANGE Message Message VARCHAR(50) CHARACTER SET utf16 COLLATE utf16_general_ci NOT NULL ;

试试这个查询

【讨论】:

  • 为什么是 UTF-16?这不应该是必要的。
  • 是的,这应该没有必要,但当前字段设置了所有语言,因此您应该更改 utf16。
  • 给我这个类型错误:- #1115 - 未知字符集:'utf16'
  • 我目前正在收集 utf16_general_ci 并插入印地语、古吉拉提语和其他正常工作的语言我不会出错。
【解决方案2】:

参见https://stackoverflow.com/a/38363567/1766831 -- 特别是“问号”的讨论。它说

  • 要存储的字节未编码为 utf8/utf8mb4。解决这个问题。
  • 数据库中的列是 CHARACTER SET utf8(或 utf8mb4)。解决这个问题。
  • 另外,请检查读取期间的连接是否为 UTF-8。

问号已经在数据库表中;原始数据丢失。

不要不要使用ucs2或utf16;仅使用 utf8 或 utf8mb4。

【讨论】:

    猜你喜欢
    • 2012-01-28
    • 2019-05-06
    • 2013-08-01
    • 2022-10-15
    • 2020-10-25
    • 1970-01-01
    • 2012-07-24
    • 1970-01-01
    • 2012-12-12
    相关资源
    最近更新 更多