单位的Oracle安装时,NLS_LANG是ASCII; 编程时引用ADO.NET自带的System.Data.OracleClient 命名空间(Oracle 的 .NET Framework 数据提供程序)建立数据库连接,查询结果就变成乱码(如下),不知道大家有没有这个烦恼。JH CYJH YT
Jo2-8-02 Jo9bSMLo 我自己理解这个问题是:客户端和服务器端Oracle使用的字符集相同,但是开发工具的字符集不同,结果造成数据乱码。问题是如何修改.NET Framework中Oracle 的字符集
Jo2-8-02 Jo9bSMLo 我自己理解这个问题是:客户端和服务器端Oracle使用的字符集相同,但是开发工具的字符集不同,结果造成数据乱码。问题是如何修改.NET Framework中Oracle 的字符集
解决方案 »
- 求昨天凌晨1点到今天凌晨1点的SQL语句
- OPC题库007请教
- oracle监听器启动不了
- sqlloader如何解决这样的txt问题?
- [Help]如何根据不同月份来读写不同的数据表?
- 将w7改装成xp系统时失败
- SQL抽出数据问题
- oracle与db2的区别
- 大家请帮忙!!关于数据自动备份
- 如何用oracle来做web应用的数据仓库的分析决策系统或用其他工具的可行性?
- 调用xmldom.writetofile方法以后,为什么生成的xml文件却没有<?xml version="1.0" enconding="GB-2312">这一项?
- 请教:将oracle中的数据实时导入到access中,急!!!
下的NLS_LANG是什么?
ORACLE有两个设置字符集的地方,一个是在安装oracle的时候选择字条集,一般为chs16gb,具体哪几个字条记不大清了,这个是设置的服务器端的字符集,另一个有关字符集的地方就是在客户端,就是安装了ORACLE客户端的电脑上,在注册表里,既你说的那个地方,一般值为SIMPLIFIED CHINESE_CHINA.ZHS16GBK。
TO楼主,有一个命令可以查出服务器端的字符集的,你可以查一下再下定论,那个ASCII不是字符集的意思吧
以下是转gb2312的
Encoding enc = Encoding.GetEncoding("gb2312");
Encoding unicode = Encoding.Unicode;
Byte[] CS = Encoding.Convert(enc, unicode, yourBytes);char[] Chars = new char[unicode.GetCharCount(CS, 0, CS.Length)];
unicode.GetChars(CS, 0, CS.Length, Chars, 0);
string s = new string(Chars);
比如我现在有一个表GetTable1,一个控件a.
GetTable1内的数据需要转换,然后绑定a,怎么写?
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
a.DataSource=GetTable1; this.a.DataBind();
}
public DataTable GetTable1
{
get
{
return (new MySystem()).GetTable1();
}
}
Oralce Server 的字符集和 Oracle Client([HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME1]
) 字符集设置一样。(WE8ISO8859P1)现象:
用PLSQL 工具查看记录,中文能正常显示
用C#的oracle.client的组件编程导出数据记录(dataset),dataset内存里的值都是乱码?尝试:
用内存的值强制转换为UTF-8,似乎还是乱码?