gpt4 book ai didi

mysql - 在 CakePHP 和 MySQL 中使用 UTF 和印地语

转载 作者:行者123 更新时间:2023-11-29 08:11:27 24 4
gpt4 key购买 nike

我创建了一个包含印地语 (UTF-8) 数据的表单,我想将其存储在 MySQL 表中。与 UTF 数据对应的列的排序规则值设置为 utf_general_ci

我已成功将数据存储在表中,但是当我执行 select-where 查询时,它不返回数据。这是我的查询:

SELECT 出生.sno, 出生.预订号码, 出生.birth_date出生baby_gender出生baby_name出生 code>.baby_father_name, 出生.baby_father_address, 出生.baby_mother_name, 出生.birth_place出生.place_type出生.applicant_name, 出生.申请人地址, 出生.注册号码, 出生. Registration_date出生registration_ward出生registration_city_village出生 .registration_district出生备注出生mother_place_name出生.mother_place_type出生.mother_place_district出生.mother_place_state出生.person_religion出生.father_education出生.mother_education, 出生.父亲职业, 出生.母亲职业, 出生.mother_age_at_marriage出生mother_age_at_birth出生count_of_mother_child出生 code>.birth_by出生.birth_method出生.mother_weight_at_birth >出生.怀孕持续时间出生.date_of_issue 来自np.出生 AS 出生 WHERE 出生.baby_name = 'd' AND 出生.baby_father_name = 'e' AND 出生.baby_mother_name = 'f' AND 出生.baby_father_address = 'g' AND 出生.person_religion = 'हिंदू' AND 出生.baby_gender = 'पुरुष'

数据库名称为np,表名称为births上述查询已打印在日志文件中。我尝试在 HeidiSQL(MySQL 前端)中复制并粘贴相同的查询,但它没有运行。但是,如果我删除以下部分: ** AND Birth.person_religion = 'हिंदू' AND Birth.baby_gender = 'पुरुष'**,查询工作正常。

如何解决这个问题?

最佳答案

这看起来像是 MySQL 客户端和 MySQL 服务器不“对话”相同编码的情况。

有 3 个地方需要注意编码。

Web 表单(用户看到的内容)-> 您的 Web 应用程序 (CakePHP) -> 您的数据库服务器 (MySQL)

这三者之一没有使用与其他者相同的编码。所以到时候:

“'हिंदू'”和“'पुरुष'”进入您的数据库,它们将是完全不同的东西,在数据库中找不到。

因此,请确保在 default.ctp 文件中设置了编码:

echo $this->Html->charset();//这将导致页面采用 UTF-8 编码。

查看您网页的源代码(我猜您有一个搜索/过滤器表单)。

在顶部您应该看到:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

然后查找为您的搜索/过滤表单生成的代码。您应该看到:

<form id="your_form_id" accept-charset="utf-8" method="post" action="/your/action/">

重要的是,“utf-8”必须出现在这些地方。

接下来,查看您的 database.php文件并确保这一行:

'encoding' => 'utf8',没有被注释掉!

最后,使用您确定支持 UTF-8 的客户端(可能是 HeidiSQL)查看您的数据表 np.births并确保您拥有的数据确实有意义!可能是因为之前编码的差异而被破坏。

一旦数据在数据库中有意义,您就可以开始了!

如果这不适合您,您必须阅读并彻底理解 this article 。只有这样您才能找到问题所在并使编码保持同步。(显然你的 PHP 源文件也应该是 UTF-8 编码的......)

关于mysql - 在 CakePHP 和 MySQL 中使用 UTF 和印地语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21495599/

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