gpt4 book ai didi

php - 使用 php 从数据库中获取 "hindi"结果时出错

转载 作者:行者123 更新时间:2023-11-30 22:29:49 26 4
gpt4 key购买 nike

我正在尝试使用 php 从 MySQL 数据库中获取“hindi”(utf-8) 结果。

我写了下面的代码..

<?php
$connection = mysql_connect("localhost","root","root");
if(!connection)
{
die('Could not connect: ' . mysql_error());
}

mysql_query('SET character_set_results=utf8');
mysql_query('SET name=utf8');
mysql_query('SET character_set_client=utf8');
mysql_query('SET character_set_connection=utf8');
mysql_query('SET character_set_results=utf8');
mysql_query('SET collation_connection=utf8_general_ci');

mysql_select_db('data',$connection);
$result = mysql_query("SET NAMES utf8");
$cmd = "select * from question";
$result = mysql_query($cmd);

$myArray = array();

while($row =$result->fetch_object()){
$tempArray = $row;
array_push($myArray, $tempArray);
}
echo json_encode($myArray);
?>

但我没有得到预期的结果。我想打印 Utf-8(印地语)数据。

如果我使用下面的代码来打印单行

while($myrow = mysql_fetch_row($result)){
echo ($myrow[0]);
echo ($myrow[1]);
echo ($myrow[2]);
}

它工作正常并打印 utf-8(印地语)数据。

请帮我看看我遗漏了什么,或者有什么错误的实现....

提前致谢..!!

最佳答案

mysql_query('SET name=utf8');

应该是mysql_query('SET NAMES utf8'); .不需要其他 SET。

此外,不要使用已弃用的 mysql_* 接口(interface),重写为使用 mysqli_*(或 PDO)。

印地语是梵文吗,比如हिन्दी ?
的 utf8 十六进制是:E0A4B9 E0A4BF E0A4A8 E0A58D E0A4A6 E0A580
如果您看到类似 हिनà¥à¤¦à¥€ 的内容,你有“Mojibake”。

not getting the expected results

你得到了什么?

json_encode -- 应该包括第二个参数 JSON_UNESCAPED_UNICODE避免获取“html 实体”。

要在 PHP 中查看十六进制,

$hex = unpack('H*', $text);
echo implode('', $hex);

latin1不够;你需要utf8 (或 utf8mb4 )。

我意识到这不是一个完整或连贯的答案,但它为 OP 提供了几个行动项目以更接近解决方案。

关于php - 使用 php 从数据库中获取 "hindi"结果时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34172300/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com