数据 库:Oracle9(字符集:JAPANESE_JAPAN.JA16SJIS)
开发工具:Microsoft Visual Studio 2008
开发语言:VB.net
问题现象:通过程序向数据库中加入中文字符串时,出现乱码‘?’。
例如:‘刚才’->‘?才’。
初步怀疑是:Microsoft Visual Studio 2008的字符集与Oracle9的字符集不一致,如果改为SQL Server 2005的话就没有出现乱码现象。
由于能力所限,无法解决,请各位大侠指点。

解决方案 »

  1.   


    你是使用的什么样的连接方式连接的oracle?
      

  2.   

    大哥,JAPANESE_JAPAN.JA16SJIS是日文的字符集啊
      

  3.   

    我使用这个字符串连接数据库的
    <add name="testConnectionString"
                connectionString="Data Source=192.168.16.44;Persist Security Info=True;User ID=***;Password=***;Unicode=True"
                providerName="System.Data.OracleClient" />我使用的系统是日文,要实现插入中文。字段定义为NVARCHAR2(500)我用PL-SQL工具直接在Oracle数据库中编辑插入中文也是乱码。
      

  4.   


    用nvarchar解决,这个是oracle专门正对国际化做的。
      

  5.   


    不知道你的VB是用的什么样的连接方式,是oci还是其他的方式,可惜,我对VB没有一点了解,不过你说了你用plsql工具也是乱码的话,需要看看你的本地NLS_LANGUAGE的设置了,这个设置需要和数据库中的一样如果你的数据库是JAPANESE_JAPAN.JA16SJIS, 他的值也应该是一样的才能保证你插入没有乱码,先这样试试,如果可以的话,在看看你的VB是不是OK了。
      

  6.   


    window的话
    设置这个key的键值
    HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMExx\NLS_LANGlinux
    在你的user的.bash_profile中加入
    NLS_LANG=JAPANESE_JAPAN.JA16SJIS
    export NLS_LANG
    即可
      

  7.   

    我将服务器上和本地的字符集都改成一样的也不好使。
    Microsoft Visual Studio 2008 向Oracle里插入数据时使用什么方式转换代码字符集呀?
    请高手帮忙呀。
      

  8.   

    用select * from v$nls_parameters;
    查看其中的NLS_CHARACTERSET 是什么字符集,如果是
    linux 
    在你的user的.bash_profile中加入 
    NLS_LANG=上面查询出来的字符集
    export NLS_LANG