服务器字符集是WE8ISO8859P1,属于单字符集,一个汉字占两个字节。我的oracle版本是8.1.7或7.3.4。有没有一个能够完全转换WE8ISO8859P1的父集。能让一汉字作为一个字节。

解决方案 »

  1.   

    楼上的那你就错了。
    字符集ZHS16GBK存在汉字就为一个字节。
    在convert(str,'WE8ISO8859P1','ZHS16GBK') 这样汉字就是一个字节。但是这样转换会出现乱码。你明白吗?
      

  2.   

    没有听说一个汉字存储的时候仅占用一个字节
    当client端和server端的字符集相同的时候,oracle数据库不再进行字符集转换,直接存入字符,读取的时候也是因为服务器端和客户端字符集相同的原因不再进行转换,而客户端操作系统能够识别汉字的编码,所以使用单字节的字符集看起来也能够正确存储和读取汉字而已,也仅仅是看起来而已,事实上数据库中存储的不是正确的编码
      

  3.   

    to xiaoxiao1984(笨猫儿): 
    你认为有不有比较好的方法来处理一个字符串中包括了我需要去掉的字符的好的方法呢?
    例如。这数字“3”是全角的。字符串“福超”中,是没有这个数字“3”。但是用这个语句来查询却能找出在字符串“福超”包括“3”,因为instr是逐个字节来比较的,就是由于汉字占两个字节,所以导致这样问题存在。
    select instr('福超','3') from dual