带有重音符号的PHP未知编码

带有重音符号的PHP未知编码,php,character-encoding,Php,Character Encoding,我在用php读取一些文件夹/文件时遇到了很多麻烦 我对一个文件夹和一个特定文件进行扫描,其中有一个名字,上面写着:“BAILÉN”。当我做“回声”时,它显示“BAILE'N”。 最大的问题是php无法识别该文件。函数包括文件、目录、文件、重命名、扫描。。。失败了 我尝试了utf8_编码、解码、iconv,但使用了大量字符集,但没有任何效果 这是一个名为: PHP版本5.6.12 非常感谢(如果我的英语不好,很抱歉) 编辑: 如果有人感兴趣的话 我的一个合作伙伴开发了一个小型C#应用程序来替

我在用php读取一些文件夹/文件时遇到了很多麻烦

我对一个文件夹和一个特定文件进行扫描,其中有一个名字,上面写着:“BAILÉN”。当我做“回声”时,它显示“BAILE'N”。 最大的问题是php无法识别该文件。函数包括文件、目录、文件、重命名、扫描。。。失败了

我尝试了utf8_编码、解码、iconv,但使用了大量字符集,但没有任何效果

这是一个名为:

PHP版本5.6.12

非常感谢(如果我的英语不好,很抱歉)


编辑:

如果有人感兴趣的话

我的一个合作伙伴开发了一个小型C#应用程序来替换有问题的字符(C#函数识别文件)

我能够用hex2bin和bin2hex替换有问题的字符。但无论我做了什么,php函数都无法识别de文件


我认为php函数在这些字符上有问题,我无能为力。

这是因为您正在体验Unicode规范表示的乐趣

有更多的方式来表现“É”的性格。utf-8'C3 89'中的
U+00C9
大写字母E,带有尖锐的口音。 或
U+0045U+0301
大写字母E+变音符号锐重音Utf-8'45 cc 81'。你在第二种情况下

有一种方法可以检查这个问题:尝试使用U+00C9点代码查找“BAILÉN”

PHP 5.3.0及其静态函数提供了一个类,旨在解决这些问题:


顺便说一下,文件名存储机制依赖于文件系统和操作系统。如果您在Linux上运行ext*fs、whatver上运行*BSD或使用NTFS的Windows上的代码,结果可能会有所不同。

坏字节代码是:69 204 129,(十六进制45 cc 81),这是一个E+和“joy”XD的组合。我想我没有在php中安装normalizer。我将在下周尝试使用U+00C9和U+0045U+0301进行替换。非常感谢你。仍然不知道为什么php不认识它。