没遇到过,我一般用clob类型、

解决方案 »

  1.   

    救命啊~
    出错信息是:javax.servlet.ServletException: 不能在 UTF8 和 UCS2 之间转换: failUTF8Conv
    要取出的内容为:"上周工作:**************"问题就是这个全角的冒号~~
      

  2.   

    下面的类是关于UTF16的转换的,至于UTF8转换我想应该差不多吧!这是我在研究中文问题解决时的发现!在Properties类里的方法,我把他借助过来!
    import java.io.*;public class UnicodeStringConvert
    {

    private static final String specialSaveChars = "=: \t\r\n\f#!";

    public static String loadConvert (String theString) {
            char aChar;
            int len = theString.length();
            StringBuffer outBuffer = new StringBuffer(len);        for(int x=0; x<len; ) {
                aChar = theString.charAt(x++);
                if (aChar == '\\') {
                    aChar = theString.charAt(x++);
                    if(aChar == 'u') {
                        // Read the xxxx
                        int value=0;
        for (int i=0; i<4; i++) {
            aChar = theString.charAt(x++);
            switch (aChar) {
              case '0': case '1': case '2': case '3': case '4':
              case '5': case '6': case '7': case '8': case '9':
                 value = (value << 4) + aChar - '0';
         break;
      case 'a': case 'b': case 'c':
                              case 'd': case 'e': case 'f':
         value = (value << 4) + 10 + aChar - 'a';
         System.out.println(value);
         break;
      case 'A': case 'B': case 'C':
                              case 'D': case 'E': case 'F':
         value = (value << 4) + 10 + aChar - 'A';
         System.out.println(value);
         break;
      default:
                                  throw new IllegalArgumentException(
                                               "Malformed \\uxxxx encoding.");
                            }
                        }
                        outBuffer.append((char)value);
                    } else {
                        if (aChar == 't') aChar = '\t';
                        else if (aChar == 'r') aChar = '\r';
                        else if (aChar == 'n') aChar = '\n';
                        else if (aChar == 'f') aChar = '\f';
                        outBuffer.append(aChar);
                    }
                } else
                    outBuffer.append(aChar);
            }
            return outBuffer.toString();
        }
        
        public static String saveConvert(String theString, boolean escapeSpace) {
            int len = theString.length();
            StringBuffer outBuffer = new StringBuffer(len*2);        for(int x=0; x<len; x++) {
                char aChar = theString.charAt(x);
                switch(aChar) {
    case ' ':
        if (x == 0 || escapeSpace) 
    outBuffer.append('\\');     outBuffer.append(' ');
        break;
                    case '\\':outBuffer.append('\\'); outBuffer.append('\\');
                              break;
                    case '\t':outBuffer.append('\\'); outBuffer.append('t');
                              break;
                    case '\n':outBuffer.append('\\'); outBuffer.append('n');
                              break;
                    case '\r':outBuffer.append('\\'); outBuffer.append('r');
                              break;
                    case '\f':outBuffer.append('\\'); outBuffer.append('f');
                              break;
                    default:
                        if ((aChar < 0x0020) || (aChar > 0x007e)) {
                            outBuffer.append('\\');
                            outBuffer.append('u');
                            outBuffer.append(toHex((aChar >> 12) & 0xF));
                            outBuffer.append(toHex((aChar >>  8) & 0xF));
                            outBuffer.append(toHex((aChar >>  4) & 0xF));
                            outBuffer.append(toHex( aChar        & 0xF));
                        } else {
                            if (specialSaveChars.indexOf(aChar) != -1)
                                outBuffer.append('\\');
                            outBuffer.append(aChar);
                        }
                }
            }
            return outBuffer.toString();
        }
        
        private static char toHex(int nibble) {
    return hexDigit[(nibble & 0xF)];
        }
        
        private static final char[] hexDigit = {
    '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'
        };
    }