使用jspsmart上傳文件很方便,但是如果使用UTF-8編碼,會(huì )出現亂碼。對于使用 UTF-8編碼的項目很不方便。GB2312編碼格式不會(huì )出現亂碼。
今天看了一下,只需要修改一個(gè)地方就可以解決問(wèn)題。
首先反編譯SmartUpload類(lèi),只需要修改一個(gè)私有方法,方法修改如下:
- 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;
- }
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++;}//修改開(kāi)始String s = null;try {//修改代碼,首先得到響應的字符編碼類(lèi)型,然后對得到的字符串進(jìn)行編碼。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;} 修改之后UTF-8,GBK,GB2312都不會(huì )亂碼。如果有問(wèn)題,請聯(lián)系我!謝謝!