我是新来的,所以如果我做错了什么,我深表歉意。
我有一个将用户输入提交到另一个页面的表单。用户应输入ä、ö、é 等... 我已将以下所有内容放入文档中:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
header('Content-Type:text/html; charset=UTF-8');
<form action="whatever.php" accept-charset="UTF-8">
我什至尝试过:
ini_set('default_charset', 'UTF-8');
当其他页面加载时,我需要检查用户输入的内容,例如:
if ( $_POST['field'] == $check ) {
...
}
但是,如果他输入类似 'München' 的内容,PHP 会将 'München' 与 'München' 进行比较,并且不会触发 TRUE,即使它应该触发。由于到处都指定了UTF-8,我猜测服务器正在转换为其他东西(我在另一个线程上阅读的Windows-1252),因为它不支持或未配置为UTF-8。在加载到生产环境之前,我在本地服务器上使用 Apache;我没有更改(也不知道如何更改)任何默认设置。我一直在使用 Windows 7,使用 Notepad++ 编辑我的 ANSI 文件。如果我bin2hex('München')
得到'4dc3bc6e6368656e'。
如果我echo $_POST['field'];
正确显示“München”。
我到处寻找解释,我发现我应该包括我已经拥有的那些标签/标题。
任何帮助深表感谢。