开发者

php mb_strtolower giving invalid character

The following code is creating problem.

var_dump($name);
$name = mb_strtolower($name);
var_dump($name);

Output is

string(32) "brazil and techno开发者_Python百科logy, São Paulo"
string(32) "brazil and technology, s�o paulo"

Can someone please explain why I am getting an invalid character for ã? What am I doing wrong here?

mb_detect_encoding($name) says its UTF-8


mb_strtolower() has a second parameter to specify the encoding. If omitted, it uses mb_internal_encoding()'s return value. Try adding that parameter explicitly. If you're on UTF-8:

 $name = mb_strtolower($name, "UTF-8");

If that doesn't help, make 100% sure the incoming data is UTF-8 in all the steps along the way, and the output is UTF-8 as well. It could well be that you are working with IS-8859-1 data that gets garbled by the strtolower operation.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜