当前位置: 代码迷 >> Oracle技术 >> oracle 存放特殊字符的有关问题
  详细解决方案

oracle 存放特殊字符的有关问题

热度:182   发布时间:2016-04-24 08:06:53.0
oracle 存放特殊字符的问题
本帖最后由 wood001 于 2014-11-11 15:47:19 编辑
最近在做一个项目的时候,在oracle数据库(ver10.2.0.4)里需要保存一些单位(如m?,m?,cm?,mm?),
但是实际操作的结果很让人惊讶,输入的这些单位字符进入字段(类型varchar2)里面都变成了m2,m3这样的。
很显然,这不符合要求。
各位高手,怎样才能让varchar2类型保存这样的特殊字符呢?
------解决思路----------------------
要看什么字符集支持这样的字符
然后修改数据库字符集
可能指定合适的国家字符集,然后存放在nvarchar2类型的字段中会更好
------解决思路----------------------
这种单位还真没存储过。
因为在处理的时候就知道他是怎么单位的数据,展示时页面加的单位。
------解决思路----------------------
可以考虑使用类似csdn回复的存储方式,存储的时候都是在文字的前后加上固定的标注,显示时重新解析
类似的,你的m?可以存储为“M[up]2[/up]”,在界面显示的时候再解析出来显示
------解决思路----------------------
m?中平方号是 U+00B2,varchar2 的DBCS编码正好不支持这个区间,必须用 nvarhcar2 的 Unicode 编码。
------解决思路----------------------
试试在nvarchar2字段里存储,能不能正常显示
如果可以,直接将该字段类型从varchar2转成nvarchar2,改动应该是最小的
------解决思路----------------------
改类型是变动最小的方案了。
除了SQL语句,程序都是作为字符串处理的,基本不用做变动。
  相关解决方案