现在客户的基础数据库是英文字符集,我们的软件需要连接这个数据库并将数据显示出来。
现在的问题就是基础数据库是上级部门管理不能动,显示的中文为乱码。
有没有在不改动基础数据库的前提下,正确的显示出中文?
现在的问题就是基础数据库是上级部门管理不能动,显示的中文为乱码。
有没有在不改动基础数据库的前提下,正确的显示出中文?
解决方案 »
- ORACLE 百万行数据查询优化
- toad7.3中点referential和used by 查看表关系
- ibatis 调存储过程查询大数据表
- 数据库导入imp要求输入口令的问题
- 菜鸟问题,请各位大侠帮忙,急,在线。
- 在SCO UNIX 下安装ORACLE 7.3.2怎么总出现错误啊
- 谁能给一个下载oracle for linux版的中文网站???
- linux中安装oracle11g,安装dbca时遇到问题,求解决
- 求教一个无法删除表的问题ORACLE-00604
- 两个子查询的连接查询如何提高查询速度
- oracle 新手,10g 安装后OracleOraDb10g_home1iSQL*Plus和OracleCSService都不能启动
- 数据库不能启动ora-01092错误 请指点等待中...
亦或是PL/SQL Developer中显示中文?
这个系统有两个数据库,一个是基础数据库,是他们上级部门提供的,由于历史原因,英文字符集的。还有一个是我们自己的业务数据库,是中文字符集的。
需要在代码里显示中文,同时有的数据也需要放入我们的业务数据库,代码是用微软的ASP.NET MVC2 做的。客户端的字符集设的是中文字符集。现在的问题就是基础数据读出来的中文全显示是问号。
我们自己的业务数据库里的中文是正常的
既然是英文字符集的,那肯定是ASCII编码的
集才能支持2. 用OLEDB的微软驱动方式,能很好的解决WE8ISO8859P1字符集乱码问题,但是对于
Blob字段类型不支持,只支持Long Raw类型,但是在一个表中只能存在一个Long Raw类
型,另外Long Raw类型不支持从一个表insert到另外一个表的操作3. 用OLEDB的Oracle驱动方式,能支持Blob类型,WE8ISO8859P1字符集显示中文也正
常,但是保存中文数据,每个中文HEX编码会全部变成”BF”,两个BFBF变成一个
“靠”字,导致中文乱码不换字符集需要转码,给你参考一上
public static void DeDataTable(DataTable dataTable)
{
Encoding encoding = Encoding.GetEncoding("iso-8859-1");
Encoding srcEncoding = Encoding.GetEncoding("gb18030");
Encoding dstEncoding = Encoding.GetEncoding("unicode");
string s = "";
foreach (DataRow row in dataTable.Rows)
{
for (int i = 0; i < dataTable.Columns.Count; i++)
{
if (dataTable.Columns[i].DataType == Type.GetType("System.String"))
{
s = row[i].ToString().TrimEnd(null);
byte[] bytes = encoding.GetBytes(s);
byte[] buffer2 = Encoding.Convert(srcEncoding, dstEncoding, bytes);
s = new string(dstEncoding.GetChars(buffer2));
row[i] = s;
}
}
}
dataTable.AcceptChanges();
}