gpt4 book ai didi

php - 从URL到PHP再到MySQL,如何进行UTF-8编码和解码?

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

假设我想通过 Web 服务发送 Unicode 字形 U+CABC 쪼 以保存在数据库中。

例如,wget 用于连接到 Web 服务:

shell_exec("wget 'http://doit.com/testing.php?glyph=.f(0xCABC)."'")

其中 f 是用于转换/编码/转义字形 U+CABC 的 PHP 函数。

在testing.php中,通过$_REQUEST访问字形:

$glyph = $_REQUEST['glyph'];

我想将它放入数据库中,所以让我们设置一个像这样的查询字符串:

$query = '插入 UTF8_TABLE (UTF8_FIELD) VALUES ('.g($glyph).')';

其中 g 是将字形转换为 MySQL 兼容表示的 PHP 函数。

我似乎找不到函数 fg 所需的内容。

对于 f,尝试通过多种函数进行转义和编码,例如作为 HTML 编码的 UTF-8:%EC%AA%BC。对于g,尝试了各种转义和解码函数,例如html_entity_decodeutf_decode

但无论我如何编码它,它总是被解释为三个字符的字符串쪼,然后将其保存在数据库中作为쪼(即六个字节) ),而不是쪼(即三个字节)。

我什至还没有开始弄清楚如何通过 SQL SELECT 返回字形并编码 JSON,但现在,只是想要一种简单的方法来处理从出发地到目的地的 UTF-8。

最佳答案

$glyph = "쪼"; //or
$glyph = "\xEC\xAA\xBC";

这是用 UTF-8 编码的字形。如果您将源代码保存为 UTF-8,则前者有效,而后者在任何情况下都有效。要在 URL 中传输此内容,请对其进行 URL 编码:

$url = 'http://...?glyph=' . rawurlencode($glyph);

在服务器上,PHP会自动再次解码,所以:

$glyph = $_GET['glyph'];

从那里,将其插入数据库,就像插入任何其他 UTF-8 编码文本一样,主要是确保数据库连接编码设置正确。请参阅UTF-8 all the way through .

关于php - 从URL到PHP再到MySQL,如何进行UTF-8编码和解码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20757998/

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