试试改一下字符集,java中的String(byte[] bytes, int offset, int length, String enc)之后再入库

解决方案 »

  1.   

    我特意试过,记的是3个字节一个汉字。很怪异,不知道Oracle怎么算出来的?
      

  2.   

    对,UTF8的数据库一个汉字就是三个字节
      

  3.   

    各位疑问的回答如下:
    1/没有任何乱码。我JSP的页面出入都是良好的中文。
    2/我的确是4个字节。接近定义长度时把其中的4个英文换成一个中文可以入库,3个就不行。
    3/我更改我Oracle客户端的charset为ISO8859_1时,客户端可操作中文,依然出现此问题,所以,应该与JSP无关。
    4/想起来了,我的JSP没指定编码,所以应该采用的是ISO8859_1。这个编码的中文几个字节的?
      

  4.   

    入库超长是charset的原因,已经大概明确了。(只所以说大概因为具体多少字节不清楚)
    但oracle的函数length()怎么解释呢?它不知道数据库字符集才简单化将每个汉字2字节的处理吗?是不是bug呢?