使用jspsmart上传文件很方便,但是如果使用UTF-8编码,会出现乱码。对于使用 UTF-8编码的项目很不方便。GB2312编码格式不会出现乱码。
今天看了一下,只需要修改一个地方就可以解决问题。
首先反编译SmartUpload类,只需要修改一个私有方法,方法修改如下:
- private String getDataHeader() {
- int i = m_currentIndex;
- int j = 0;
- for (boolean flag1 = false; !flag1;)
- if (m_binArray[m_currentIndex] == 13
- && m_binArray[m_currentIndex + 2] == 13) {
- flag1 = true;
- j = m_currentIndex - 1;
- m_currentIndex = m_currentIndex + 2;
- } else {
- m_currentIndex++;
- }
- //修改开始
- String s = null;
- try {
- //修改代码,首先得到响应的字符编码类型,然后对得到的字符串进行编码。
- String encode = m_response.getCharacterEncoding();
- if(encode.equalsIgnoreCase("UTF-8")) {
- s = new String(m_binArray, i, (j - i) + 1, "UTF-8");
- } else {
- s = new String(m_binArray, i, (j - i) + 1);
- }
- } catch (UnsupportedEncodingException e) {
- e.printStackTrace();
- }
- //修改结束
- return s;
- }