tak*_*eek 5 php unicode encoding utf-8
我的服务器上有以下测试脚本:
<?php
echo "Test is: " . $_GET['test'];
?>
Run Code Online (Sandbox Code Playgroud)
如果我使用类似example.com/script.php?test=?(? 是多字节字符)的 url 调用它,则结果页面如下所示:
测试是:É¿
如果我尝试对 $_GET['test'] 中的值执行任何操作,例如将其保存为 mysql 数据库,我也会遇到同样的问题。我需要做什么才能让 PHP 正确处理这个值?
您是否告诉用户代理您的 HTTP 响应是 UTF-8?
header ('Content-type: text/html; charset=utf-8');
Run Code Online (Sandbox Code Playgroud)
您可能还想确保您的 HTML 标记也声明了编码,例如
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
Run Code Online (Sandbox Code Playgroud)
对于您的数据库,您的表和 mysql 客户端设置是否设置为 UTF-8?如果您使用 mysql 命令行客户端检查数据库,您的终端环境是否设置为支持 UTF-8?
简而言之,您必须检查每一步:从原始源数据、涉及它的代码、保留它的存储系统以及用于显示和调试它的工具。