strtoupper功能对俄语不起作用

Rom*_*eev 1 php locale

代码如下:

setlocale( LC_CTYPE, 'ru_RU' );
echo strtoupper('Hello! ??????!');
Run Code Online (Sandbox Code Playgroud)

拉丁字符按预期转换.但俄罗斯 - 保持不变.

有什么想法吗?

Ama*_*ali 7

您想要使用mb_strtoupper():

mb_internal_encoding('UTF-8');
setlocale(LC_CTYPE, 'ru_RU');
echo mb_strtoupper('Hello! ??????!');
Run Code Online (Sandbox Code Playgroud)

输出:

HELLO! ??????!
Run Code Online (Sandbox Code Playgroud)

演示