Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP将非Unicode字符转换为Unicode(完整)_Php_Unicode_Special Characters - Fatal编程技术网

PHP将非Unicode字符转换为Unicode(完整)

PHP将非Unicode字符转换为Unicode(完整),php,unicode,special-characters,Php,Unicode,Special Characters,我一直在尝试将一些特殊的和未编码的字符转换为原始字符,但没有得到所需的字符。 让我们举个例子。我有一个波斯名字的文件,我想上传它。当我上传它时,名字会变成一些奇怪的字符,比如Ø!我不知道为什么(我也不想知道),但当我开始用IDM下载它时,这个奇怪的名字又变回了原来的名字。 原始文件名:rar 奇怪的文件名:ØØØÙØØØØØØØØØØØØØÙØÙØØØØØØØØØØ21 这不仅仅是我的问题。每种语言的文件名都会转换为自己的奇怪字符。在另一个例子中,当我想将巴比伦字典(bgl)转换为stardic


我一直在尝试将一些特殊的和未编码的字符转换为原始字符,但没有得到所需的字符。
让我们举个例子。我有一个波斯名字的文件,我想上传它。当我上传它时,名字会变成一些奇怪的字符,比如Ø!我不知道为什么(我也不想知道),但当我开始用IDM下载它时,这个奇怪的名字又变回了原来的名字。

原始文件名:rar
奇怪的文件名:ØØØÙØØØØØØØØØØØØØÙØÙØØØØØØØØØØ21 这不仅仅是我的问题。每种语言的文件名都会转换为自己的奇怪字符。在另一个例子中,当我想将巴比伦字典(bgl)转换为stardict(mdx)格式时,语音会再次转换为奇怪的字符。


我想知道是否有一种绝对的方法可以使用PHP将所有这些字符转换回原始字符集?

您正在弄乱您的字符集。当显示软件需要单字节字符集时,像UTF-16这样的多字节字符集通常是这样的。我曾经创建了一个函数,用于将UTF8和UTF32转换为正确的UTF8:我不确定这是否有助于您…您在目标服务器上使用的文件系统类型是什么?是什么给了你“奇怪”的文件名?它是终端中的
ls
还是PHP输出?