oracle中全角汉字被截断的乱码问题
表a的spec字段长度为20,该字段存在全角汉字被截断的乱码问题。例如,导入时某个数据长度为21,最后一个汉字占第20和21字节,因此在导入数据库时,该汉字只保留了第一个字节,第二个字节被截断了,在oracle数据库中就显示为乱码。
现在要用C#从数据库中读取该字段,然后由用户选择某一项,再用该字段的内容去匹配表b的spec字段(也有乱码)。
问题是,现在我读取表a的spec字段后,C#自动把乱码转成了\0,再回去比对就不相等了。如果用like的话,可能又不止匹配上一项。
例如,表a:“中国?”,表b:"中国?",?表示乱码
C#读取表a数据后变成"中国\0",显然此时"中国\0"不等于"中国?"
请问有什么解决方法吗?
不考虑把数据库的乱码全部删去的办法。因为导入程序还会源源不断的产生乱码,而且导入程序我们无法更改。