繁体   English   中英

php $ _GET无法正确使用ISO-8859-1字符

[英]php $_GET doesn't work correctly with ISO-8859-1 characters

我有一个数据库,其中包含多个字段中的重音字母(例如“é”等)。 如果我在页面上回显这些内容,则它们将正确显示,因为在渲染html时会使用以下html标签:

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />

但是,当我想使用$ _GET从URL中的参数显示值时,它不起作用。

我使用以下代码:

$fname = $_GET['fname'];

实际输出:

groté

所需的输出:

Groté

编码对我来说看起来不错,我使用以下代码进行了检查:

var_dump($fname);
var_dump(iconv_get_encoding('all'));

输出:

string(6) "groté" 
array(3) { ["input_encoding"]=> string(10) "ISO-8859-1" ["output_encoding"]=> string(10) "ISO-8859-1" ["internal_encoding"]=> string(10) "ISO-8859-1" }

我不使用在php中设置编码的代码。 我只使用meta标记,如上所述。

我的代码有什么问题?

好的,经过进一步调查,我找到了解决方案!

$fnameraw = $_GET['fname'];
$fname = utf8_decode($fnameraw);

现在我得到正确的输出:groté! 在我的meta标签中使用charset = ISO-8859-1时。 作为URL输出的数据库输出都正确显示。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM