【问题标题】:php arguments international characters and if statementsphp 参数国际字符和 if 语句
【发布时间】:2013-05-20 17:17:38
【问题描述】:

我认为我缺少输入参数的简单内容,并且它们的字符带有重音符号。我有一个可以接受参数example.com/myphpfile.php?ar1=somestring 的php 文件,我循环遍历arg1 中的字符来做事,当我使用带有重音符号的字符时,它似乎无法正常工作。如果我有 arg1=niño 我的 if 语句似乎不起作用,它的设置是这样的:

$strArr = str_split($_GET['arg1']);
foreach ($strArr as &$char) {
    // do some stuff for each character       
}

如果我使用echo $_GET['arg1']; 并使用arg1=niño,我会得到niño。我对每个角色都做错了吗?

【问题讨论】:

    标签: php string input char


    【解决方案1】:

    您无法使用朴素的 PHP 字符串处理函数正确处理多字节字符。您需要使用编码感知函数来处理它们,可能来自the mb_ family of functions。阅读本文以获取所有详细信息(很长):What Every Programmer Absolutely, Positively Needs To Know About Encodings And Character Sets To Work With Text

    【讨论】:

    • 谢谢。这是一个很好的资源。
    【解决方案2】:

    如果字符集参数的 HTML 标记是 ISO-8859-1,如果您不必添加,请查看您的屏幕,并在创建银行时查看您的银行,因为它是 ISO-8859-1。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-21
      • 2012-02-22
      • 1970-01-01
      相关资源
      最近更新 更多