【发布时间】:2013-10-10 20:12:03
【问题描述】:
我从 javascript 中的文件 obj 中获取文件名,并使用 AJAX 将其发送到服务器。
var uploadFile = document.getElementById("uploadFile");
var filename = uploadFile.files[0].name;
问题是在文件名中发现非英文字符,例如“çõ”,并且字符转换为“�”。我还在页面中设置了“Content-Type=text/html; charset=UTF-8”。
我该如何解决这个问题?
注意:此问题仅出现在 Windows 笔记本电脑中
【问题讨论】:
-
字符在哪里变得不可读?如果是在服务端,那就是服务端问题,不是js问题。
-
js中转换为不可读的文件名并将转换后的值发送到服务器。我在开发者控制台 -> 网络 -> 标题中看到了
-
UTF-8 必须贯穿您的系统——您读取的文件需要采用 UTF-8 格式,实际的程序文件也是如此。数据库编码也是如此。以及
content-type中指定的编码。如果系统中任何地方的编码类型不匹配,都可能导致此类错误。 -
我认为这不是服务器端的问题。因为,如果是服务器端问题,所有用户都会出现编码问题。但是,这个问题只发生在部分用户身上。
标签: javascript character-encoding