来自URL的php特殊字符(umlaute)

来自URL的php特殊字符(umlaute),php,utf-8,Php,Utf 8,我对utf8、ansi和ascii的东西很生气。一直都是老故事 我有一个包含GET参数的url: 在我的PHP脚本中,我做了一个切换: switch ( strtolower( $country ) ) { case "deutschland": $country = "DE"; break; case "österreich": $country = "AT"; break; case "schweiz": $country = "CH

我对utf8、ansi和ascii的东西很生气。一直都是老故事

我有一个包含GET参数的url:

在我的PHP脚本中,我做了一个切换:

switch ( strtolower( $country ) ) {
  case "deutschland":
    $country = "DE";
    break;

  case "österreich":
    $country = "AT";
    break;

  case "schweiz":
    $country = "CH";
    break;

  default:
    $country = "DE";
    break;
}

对于Östereich,我得到默认值“DE”。那么如何解决这个问题呢?

您需要使用多字节函数来管理UTF8字符串,所以mb_strtolower()而不是strtolower()

您需要使用多字节函数来管理UTF8字符串,所以mb_strtolower()而不是strtolower()

使用
osterreich
instad of
österreich
。并从URL传递相同的内容。是否使用urlencode()函数?尝试使用var_dump(strtolower($country)),这样您就可以看到您正在处理的输出。这是一个很好的机会,可以提到使用
osterreich
安装
osterreich
。并从URL传递相同的内容。是否使用urlencode()函数?尝试var_dump(strtolower($country)),这样您就可以看到您正在处理的输出。这是一个值得一提的好机会