您好我在CodeIgniter中使用拉丁字符文件上传文件时遇到问题,当我上传它时,我回显的名称正确显示但在我上传文件名称更改的文件夹中,例如我有这个文件:
"Tour al Volcán del Totumo y a los Manglares.docx"
当我回显这个名字时,它就像那样显示但是在存储文件的文件夹中显示如下:
"Tour al Volcán del Totumo y a los Manglares.docx"
我到处寻找,我无法解决这个问题,而且我已经完成了utf-8字符集和所有这些内容的配置。
答案 0 :(得分:1)
文件夹中的文件也以特定的字符编码显示。哪种编码取决于操作系统。
根据操作系统的不同,可能存在多个错误。
在Linux上:事物存储为UTF-8,但无论您使用什么来查看文件夹(GUI,终端,sftp客户端,ftp客户端,等等)都默认设置为类似latin-1 / ISO-8559-1并显示错误,即使文件已正确存储。
在Mac上:文件在您的应用程序中以某种方式进行双UTF-8编码。这意味着文件名已经是UTF-8,你再次在字符串上调用utf8_encode(这很糟糕!)
在Windows上: PHP仅支持Windows上的ANSI文件系统API。实际上没有办法(不使用COM)存储具有unicode文件名的文件,因为输入字符串总是被视为CP-1252,并转换为UTF-8。如果您使用的字符都存在于CP-1252中,则可以使用iconv或mb_convert_encoding将UTF-8输入转换为CP-1252。