gpt4 book ai didi

php - 通过mysql查询检索PHP中的 'œ'字符

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

我正在为一个法国客户开发一个应用程序,该客户的数据库为 MySQL,排序规则为 Latin1,字符编码为 swedish_general_ci。我假设在 ISO 编码术语中对应于 ISO 8859-15 标准(这是单字节编码并包含“讨厌的”- 字符)。

在表“mytable”中有一列“mycolumn”,它具有以下记录/行:“Il est au cœur du débat”我正在从 PHP 5.3 进行查询,基于此表的 comumn 中的关键字。查询是带有 LIKE 子句的简单 SELECT,一切都会返回正确的结果,除非我从 PHP 执行此操作:

$tag = $_GET['search']; // the value of tag is ckecked as "cœ" (I printed in a file)
$res=query("SELECT * FROM `mytable` WHERE `mycolumn` LIKE '%" . $tag . "';");

它应该返回上面的“Il est au cœur du débat”结果,但是它没有(count($res) 为零)。如果我只是从代码中复制上面的查询(我将 $tag 替换为“coe”)并将其直接粘贴到 phpMyadmin 中并执行 SQL,它会正常工作,结果显示该行。我提到重音字符不是问题。我错过了什么?谢谢

最佳答案

Latin-1 (ISO-8859-1) 不包含 OE 连字。 Latin-9 (ISO-8859-15) 可以。 UTF-8 OE 将是一个 2 或 3 字节的单个字符。请注意,只有一小部分 UTF-8 可以转换为单字节编码。您需要查明数据库中究竟存储了什么——其中的文本实际上是 UTF-8(多字节)、Latin-1、Latin-9 还是其他格式?祈祷它不是多种编码的混合!查看像 phpMyAdmin 这样的实用程序为字符显示的内容,以及什么编码。请注意,该字段的编码不一定对应于特定 oe 的字节字符出现在。如果该字段是单字节编码,它应该接受任何输入而不破坏它(但不一定会显示预期的字符)。

一旦您了解了数据实际上是如何存储在数据库中的,您就可以专注于如何将您的网页输入(大概是 UTF-8)转换为与数据库中的内容相匹配的正确编码。

关于php - 通过mysql查询检索PHP中的 'œ'字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19432703/

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