ajax中文抛出异常

请教各位一个问题:
我写的一个ajax上传的函数

 xhr.setRequestHeader("Content-Type", "multipart/form-data, boundary="+BOUNDARY); 
   xhr.setRequestHeader("Content-Length", file.fileSize);   
   var body = '';   
   body += "--" + BOUNDARY + "\r\n";   
   body += "Content-Disposition: form-data; name=\""+newName+ "\"; filename=\"" + newName+ "\"\r\n";   

[color=red]如果这里两个地方有一个是中文的话就会出错,
[Exception... "String contains an invalid character" code: "5" nsresult: "0x80530005 (NS_ERROR_DOM_INVALID_CHARACTER_ERR)" location: "http://localhost:8088/TestUpload/upload.jsp Line: 255"]
我试过encodeURI(newName)来把newname的中文转码,但是在action就转不会中文了。
请各位dx指点一下,如何把newName的中文转码并且在后台action转回中文。
[/color]
body += "Content-Type: "+file.type+"\r\n\r\n";

body += file.getAsBinary() + "\r\n";

body += "--" + BOUNDARY + "--\r\n";

xhr.sendAsBinary(body);

这个问题挺麻烦的,因为转码还与filter有关,与容器有关、与jvm参数,操作系统都可能有关。
所以你只有在所有的编码都了解的情况下,才能一口气写出正确的代码。
如果你无法判断的话,你可以将上述组合各自尝试:
如encodeURI两次/一次/0次
URLDecoder.decode两次/一次/0次。
都尝试下,另外建议程序中使用统一的编码设置,且以软件中的设置更为重要。。

encodeURI(encodeURI(newName)) 这样试试!

[url]http://blog.zol.com.cn/434/article_433704.html[/url]

java.net.URLDecoder.decode

这个是和 java.net.URLEncoder.encode 搭配使用的!

你确定你的ajax 使用的是 post !然后一般只需要转码下就OK 了!

你可以参考一下我之前的一篇文章
[url]http://cuiran.iteye.com/blog/443026[/url],希望对你有所帮助.