strtolower() 提供错误的字符?

strtolower() providing faulty character?

我使用 strtolower() 将字符串转换为小写。稍后在代码中,这些字符串从 UTF-8 转换为 ANSI (Windows-1252) 使用 iconv(),除非使用 //IGNORE 语句,否则函数失败。

我将违规字符识别为小写德语 Umlaut ü。但是,在使用 ü 之前,有一个大写的 Ü,可以很好地转换。区别在于包含小写 ü 的字符串是使用 strtolower().

创建的

为什么 strtolower() 给我无法转换的结果或错误的编码?如何补救?

使用支持多字节字符的mb_strtolower

// Tell the function what charset you are using as second param. 
echo mb_strtolower($str, 'UTF-8');