如何用php处理非英语字符

如何用php处理非英语字符,php,encoding,charts,character-encoding,char,Php,Encoding,Charts,Character Encoding,Char,我用php编写了代码,用用户输入的名称创建文件,如下所示 html 当用户使用非英语字符时会出现问题 示例用户输入 结果=ظ…طظظظظظظɐظɐɐɐɐɐɐɐɐɐ 但它应该是=الغا㶊㶉بيه.php尝试创建非英语文件名的文件可能相当困难 最简单的解决方案是根本不使用此类文件名,而是对所有文件名进行编码,例如使用urlencode: $filename = $_POST['file'].'.php'; $encoded_filename = urlencode($filename); $f =

我用php编写了代码,用用户输入的名称创建文件,如下所示

html

当用户使用非英语字符时会出现问题 示例用户输入

结果=ظ…طظظظظظظɐظɐɐɐɐɐɐɐɐɐ


但它应该是=الغا㶊㶉بيه.php

尝试创建非英语文件名的文件可能相当困难

最简单的解决方案是根本不使用此类文件名,而是对所有文件名进行编码,例如使用
urlencode

$filename = $_POST['file'].'.php';
$encoded_filename = urlencode($filename);
$f = fopen($encoded_filename, 'w');
fclose($f);
这不会影响英文字符,并允许使用任何语言创建文件名


请注意,每个文件系统对文件名的长度都有一些限制,因此,如果
$encoded\u filename
变得太长,这将不起作用。

尝试创建具有非英语文件名的文件可能非常困难

最简单的解决方案是根本不使用此类文件名,而是对所有文件名进行编码,例如使用
urlencode

$filename = $_POST['file'].'.php';
$encoded_filename = urlencode($filename);
$f = fopen($encoded_filename, 'w');
fclose($f);
这不会影响英文字符,并允许使用任何语言创建文件名


请注意,每个文件系统对文件名的长度都有一些限制,所以如果
$encoded\u filename
变得太长,这将无法工作。

问题可能是文件系统。您使用的是什么文件系统,或者如果您不知道,至少是您的操作系统?我的操作系统是windows,我不知道我的文件系统是什么文件系统文件系统可能有问题。您使用的是什么文件系统,或者如果您不知道,至少是您的操作系统?我的操作系统是windows,我不知道我的文件系统是什么Thanx代表您的答案,但我确实需要文件名与原始用户输入X代表您的答案,但我确实需要文件名与原始用户输入一致
$filename = $_POST['file'].'.php';
$encoded_filename = urlencode($filename);
$f = fopen($encoded_filename, 'w');
fclose($f);