gpt4 book ai didi

mysql - HTML/PHP 表单和 MySQL 之间的 UTF-8 奇怪行为(印地语)

转载 作者:行者123 更新时间:2023-12-01 00:27:05 33 4
gpt4 key购买 nike

我将所有数据库/表和列设置为 UTF-8_general_ci 排序规则集。

我遇到的情况:-

  1. 当我通过 phpmyadmin 手动插入印地语数据时,我可以在 phpmyadmin 中看到印地语字符,而在 PHP 生成的网页上看到问号
  2. 在同一张表中,当我通过 HTML/PHP 表单插入数据时,我看到一些无法识别的英文单词,例如 cc2faa;(类似这样的内容)和正确的网页上的印地语。
  3. 对于大数据,我们有一个从 txt 文件读取并将数据插入表中的脚本,我在 phpmyadmin 中看到像 जाना 这样的字符,但是印地语 在网页上。

现在的主要问题是:-

数据已通过表格在线更改,现在我需要将此数据导出到 excel 并提供给客户,但我得到的是 excel 格式的 जाठ而不是印地语字符。

注意:-

  • 所有英文字符都可以正常工作,而且无处不在。
  • 我的字符集是 utf8 对于所有表。
  • 我尝试将排序规则更改为 UTF-8_bin,但这对我也没有任何帮助。
  • 在浏览器上的编码是UTF-8,我已经发送了UTF-8编码的 header 。

我看过很多关于 utf8 问题的帖子,但似乎没有人遇到过这种奇怪的不同行为问题。

请问我有什么办法可以解决这个问题吗??还是最后要给数据的PHP报告??

请帮忙!!

最佳答案

  1. When I insert hindi data manually by phpmyadmin, I can see the the hindi characters in phpmyadmin, while question marks when seen on webpage generated by PHP

PHP 可能会生成问号,因为数据库连接 的编码不是 utf-8。如何解决这个问题取决于您使用的数据库库;如果您使用 MySQLi,请使用 mysqli_set_charset('utf8'),如果您使用 PDO,则将 charset=utf8 添加到 DSN...

  1. In the same table when I insert data by HTML/PHP Forms I see some unrecognizable words in english something like cc2faa;(something like this) and Correct Hindi on Webpage.
  2. For the large data we have a script that reads from txt files and insert the data in the table in this , I see characters like जाना in phpmyadmin but Hindi On webpage.

这些可能是由与上述相同的问题引起的:PHP 表单和脚本使用默认编码(可能是 latin1)连接到数据库。然后他们插入 utf-8 编码的文本,但是由于 MySQL 认为您使用的是 latin1,它再次将文本编码为 utf-8,并将这个双重编码的文本插入到表中。

因此:PHP 向 MySQL 发送“जाना”,告诉它是 latin1,然后 MySQL 将其转换为 utf-8,结果为“जाना”。后来 PHP 要求 MySQL 返回值,并且由于连接再次使用 latin1,MySQL 将“जाना”解码为 latin1。然后 PHP 假装这个 latin1 字符串实际上是 utf-8 并显示“जाना”。

同样,解决方案是将连接编码设置为 utf-8。这取决于您使用什么来访问数据库。

关于mysql - HTML/PHP 表单和 MySQL 之间的 UTF-8 奇怪行为(印地语),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12616548/

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