【问题标题】:Charset encoding for non English characters in javascriptjavascript中非英文字符的字符集编码
【发布时间】: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


【解决方案1】:

我解决了这个问题:

filename = unescape(encodeURIComponent(filename));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多