如何在PHP中将字符转换为印地语字符 [duplicate]

How to convert characters into hindi characters in PHP [duplicate]

提问人:topper1309 提问时间:4/7/2019 最后编辑:topper1309 更新时间:4/7/2019 访问量:1066

问:

我正在尝试将存储在排序规则中的数据库列转换为印地语字符。utf8_unicode_ci

例如:दà¥à¤ƒà¤– कà¤3/4 à¤...धिकà¤3/4र- 测验 1

这在印地语中没有显示,我什至在标签后添加。但它仍然显示相同。<meta charset="utf-8"><head>

在我以前的网站中,它工作正常,但是当我将数据导入到我的新网站时,字符没有按预期显示。

然后经过一番研究,我发现了一些PHP功能,如下所示

   echo iconv('UTF-8', 'ISO-8859-1', $utf8);
   echo "<br>";
   echo mb_convert_encoding($utf8, 'ISO-8859-1', 'UTF-8');
   echo "<br>";

iconv显示错误和输出iconv(): Detected an illegal character in input stringmb_convert_encoding?? ? ??- Quiz 1

上述字符串的预期结果是 =दुःख का अधिकार- Quiz 1

在我得到解决方案的所有帮助之后,我使用这个将旧的数据库字符集更改为 UTF-8

UPDATE quiz_question SET question_desc = CONVERT( CONVERT( CONVERT( question_desc USING latin1 ) USING BINARY ) USING UTF8 )

php utf-8 数据转换 iconv mb-convert-encoding

评论

0赞 Qirel 4/7/2019
只需要在您的应用程序中设置一个错误的字符集 - 所有内容都需要是相同的字符集!我之前写过一个关于 UTF-8 编码的答案,其中包含一个小清单,它将涵盖 PHP/MySQL 应用程序中的大多数字符集问题。还有一个更深入的话题,UTF-8 All the Way Through。最有可能的是,您会在其中一个或两个主题中找到解决方案。
0赞 topper1309 4/7/2019
感谢您的回复,我会仔细阅读它们并相应地通知您
0赞 topper1309 4/7/2019
@Qirel实际上,我的旧数据库在latin1_swedish_ci,而在我的新数据库中,它是utf8_unicode_ci。这是个问题吗?
0赞 Qirel 4/7/2019
实际字符集比排序规则更重要。排序规则和 charset 之间是有区别的 - 但两者都应设置为 UTF8。将应用程序所有方面的字符编码设置为 UTF8,不会有任何问题。但是,存储不正确的数据将无法修复,必须更新或重新插入。
0赞 deceze 4/7/2019
@Qirel 字符集确定可能的排序规则,因此 latin1 排序规则意味着 latin1 字符集。由于 latin1 根本无法编码印地语,这意味着数据库中的数据已经是垃圾。礼帽,看看第二个副本。

答: 暂无答案