C# 操作SYBASE 数据库ASE 条件中有汉字,得不出结果

realjoshzuo 2010-10-11 01:58:14
C# 操作SYBASE 数据库ASE 15.02版本 。
比如说SQL语句中:
select * from tb where iname = '中文'

在SQL Advantage是可以查到数据的,
但是到C#中操作,查询不到,换成英文或者数字是可以查询到数据的。

SYBASE服务器的字符集iso_1,无法改变。
请问如果和解决,
试过
select * from tb where iname = N'中文'
不行

...全文
100 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
vrhero 2010-10-11
  • 打赏
  • 举报
回复
逆向操作当然不行,.NET字符只有一种编码UTF-16,而输出是UTF-8...其他编码只能以非字符形式存在,你试试编码成ISO-8859-1 byte数组看能不能支持,不能就没办法了只有改客户端与服务器字符集设置...
realjoshzuo 2010-10-11
  • 打赏
  • 举报
回复
读取ASE中文我用以下方法可以解决读取中文乱码的问题:

string encode = string.Empty;
byte[] bytes = System.Text.Encoding.GetEncoding("ISO-8859-1").GetBytes(str);
try
{
encode = System.Text.Encoding.Default.GetString(bytes);
}
catch
{
encode = str;
}
return encode;


但是我逆向操作就不行。

这样的如果插入数据也应该是乱码,我暂时没有插入的权限
vrhero 2010-10-11
  • 打赏
  • 举报
回复
.NET的字符都是UTF-8存储...iso_1本身就是单字节字符集,就是用GB2312编码也是会出问题的...你改不了服务器字符集就很难办了...

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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