she*_* me 6 php encoding character-encoding php-5.4
我在将表单数据发布为"multipart/form-data"时遇到UTF-8编码问题,没有multipart/form-data,一切运行良好.但由于我必须在同一篇文章上传文件,我需要使用multipart/form-data.
从PHP 5.3.x升级到PHP 5.4.4-14(与Debian Wheezy捆绑在一起)后出现问题,相同的脚本适用于PHP 5.3测试服务器.
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">标签.AddDefaultCharset utf-8过Apache配置.在这里你可以测试我的脚本,你可以用土耳其字符复制/粘贴以下字符串(例如字符串:öçşipğopüp)
http://sa.chelona.com.tr/haber-ekle.html
我还发现当在PHP中将表单作为multipart/form-data发布时,UTF-8文本中的相关问题是乱码但它建议重新安装apache/php,这对我的情况是不可能的.这是一个已知的PHP/Apache错误吗?
做一个简单的转换UTF-8到土耳其字母ISO-8859-9,问题应该解决
iconv('UTF-8', "ISO-8859-9", $string);
Run Code Online (Sandbox Code Playgroud)
示例输入: öç?ip?opüp
示例表格:
<form method="post" enctype="multipart/form-data" action ="self.php">
<input type="text" name="hello" />
<input type="submit" name="test" />
</form>
Run Code Online (Sandbox Code Playgroud)
简单的油底壳:
var_dump($_POST['hello'],iconv('UTF-8', "ISO-8859-9", $_POST['hello']));
Run Code Online (Sandbox Code Playgroud)
产量
string 'öçşipğopüp ' (length=16)
string 'öçþipðopüp ' (length=11)
Run Code Online (Sandbox Code Playgroud)
我写这篇文章是为了回答我自己的问题...我希望它对其他人有帮助...
如果您使用 PHP 5.4.x,将 mbstring.http_input 从“auto”设置为“pass”可能会解决您的问题。
| 归档时间: |
|
| 查看次数: |
5065 次 |
| 最近记录: |