oracle 存放特殊字符的问题

缥缈大木头 2014-11-11 03:42:37
最近在做一个项目的时候,在oracle数据库(ver10.2.0.4)里需要保存一些单位(如m²,m³,cm²,mm²),
但是实际操作的结果很让人惊讶,输入的这些单位字符进入字段(类型varchar2)里面都变成了m2,m3这样的。
很显然,这不符合要求。
各位高手,怎样才能让varchar2类型保存这样的特殊字符呢?
...全文
1424 8 打赏 收藏 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tiger_Zhao 2014-11-13
  • 打赏
  • 举报
回复
改类型是变动最小的方案了。
除了SQL语句,程序都是作为字符串处理的,基本不用做变动。
小灰狼W 2014-11-13
  • 打赏
  • 举报
回复
试试在nvarchar2字段里存储,能不能正常显示 如果可以,直接将该字段类型从varchar2转成nvarchar2,改动应该是最小的
缥缈大木头 2014-11-13
  • 打赏
  • 举报
回复
不知道还有没有影响范围更小一点的方案?
缥缈大木头 2014-11-13
  • 打赏
  • 举报
回复
引用 1 楼 wildwave 的回复:
要看什么字符集支持这样的字符 然后修改数据库字符集 可能指定合适的国家字符集,然后存放在nvarchar2类型的字段中会更好
引用 4 楼 Tiger_Zhao 的回复:
m²中平方号是 U+00B2,varchar2 的DBCS编码正好不支持这个区间,必须用 nvarhcar2 的 Unicode 编码。
最闹心的就是这个。现在系统是运行系统了,这个字段影响范围很广,修改工作量太大,所以这种方案是效益上最低的方案了。
Tiger_Zhao 2014-11-11
  • 打赏
  • 举报
回复
m²中平方号是 U+00B2,varchar2 的DBCS编码正好不支持这个区间,必须用 nvarhcar2 的 Unicode 编码。
bw555 2014-11-11
  • 打赏
  • 举报
回复
可以考虑使用类似csdn回复的存储方式,存储的时候都是在文字的前后加上固定的标注,显示时重新解析 类似的,你的m²可以存储为“M[up]2[/up]”,在界面显示的时候再解析出来显示
  • 打赏
  • 举报
回复
这种单位还真没存储过。 因为在处理的时候就知道他是怎么单位的数据,展示时页面加的单位。
小灰狼W 2014-11-11
  • 打赏
  • 举报
回复
要看什么字符集支持这样的字符 然后修改数据库字符集 可能指定合适的国家字符集,然后存放在nvarchar2类型的字段中会更好

3,499

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧