日期:2014-05-17 浏览次数:21022 次
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0] "ID"="0" "ORACLE_GROUP_NAME"="Oracle - OraHome81" "ORACLE_HOME_NAME"="OraHome81" "ORACLE_HOME"="E:\\oracle\\ora81" "NLS_LANG"="SIMPLIFIED CHINESE_CHINA.ZHS16GBK" "ORACLE_HOME_KEY"="Software\\ORACLE\\HOME0" "SQLPATH"="E:\\oracle\\ora81\\dbs" "MSHELP_TOOLS"="E:\\oracle\\ora81\\MSHELP"
------解决方案--------------------
如果数据库字符集是AMERICAN_AMERICA.US7ASCII 理论上是不能存储中文的。AMERICAN_AMERICA.US7ASCII是单字节字符集,而中文最少要两个字节。如果不能将数据库修改为建议使用zhs16gbk(中文支持很好),或者al32utf8(支持多语言)
当然,有一种方法,可以欺骗数据库,让中外正确显示,那就是把注册表的nls_lang 修改为AMERICAN_AMERICA.US7ASCII。一般不建议这么做,因为将来备份、数据交换的时候很容易乱码。
------解决方案--------------------
如果要欺骗数据库修改为
"NLS_LANG"="AMERICAN_AMERICA.US7ASCII"
如果要数据库能够真正存储中文,修改数据库字符集.在创建数据库的时候设置的.
------解决方案--------------------
这明明就是你VS编码格式的问题,和数据库有什么关系。
------解决方案--------------------
这种欺骗数据库的方法,只能读出vs写入的(而且你的设置要正确,实际这种方法就是多语言系统中常用的 "透传",保证二进制码不变,意义由使用者解析) .如果是别人写入,你是读不出来的.
建议修改数据库字符集.