UTF-8编码文件名PHP/MySQL的奇怪行为

UTF-8编码文件名PHP/MySQL的奇怪行为,php,mysql,utf-8,Php,Mysql,Utf 8,我有一个文件,如果试图将其名称保存到mysql数据库,它会用奇怪的字符保存 我的MySQL到处都有utf8\uUnicode\uCI。我的文件也是UTF-8和html元数据 所以我做了一些测试 1-我已经通过ftp上传了文件,并手动将文件重命名为与以前完全相同的名称(Fichário2.pdf),基本上是将重音字母再次写为“á” 2-我再次将同一个文件发送到ftp,令我惊讶的是,它没有覆盖上一个文件,两个文件都有“显然”相同的名称和口音 如果尝试对两个文件名进行utf8_编码/解码,我会得到以下

我有一个文件,如果试图将其名称保存到mysql数据库,它会用奇怪的字符保存

我的MySQL到处都有utf8\uUnicode\uCI。我的文件也是UTF-8和html元数据

所以我做了一些测试

1-我已经通过ftp上传了文件,并手动将文件重命名为与以前完全相同的名称(Fichário2.pdf),基本上是将重音字母再次写为“á”

2-我再次将同一个文件发送到ftp,令我惊讶的是,它没有覆盖上一个文件,两个文件都有“显然”相同的名称和口音

如果尝试对两个文件名进行utf8_编码/解码,我会得到以下结果:

手动写入 FichÃrio2.pdf(utf8ÃU编码) 菲希�rio2.pdf(utf8_解码)

从文件名复制而来 FichaÌrio2.pdf(utf8ÌU编码) Ficha?rio2.pdf(utf8_解码)(以这种方式保存到数据库中)

我尝试过mb_-detect_编码(它说这是一个UTF-8字符串)和mb_-convert_编码,但没有效果

如果我尝试使用preg_match或mb_ereg_替换,他们将无法识别该字母


任何帮助都将不胜感激。谢谢

看看你使用的一些代码会很有帮助。