数据库字符串编码导出问题BOM 我的access数据库里有一列是备注,这里有的行插入字符串有用gbk的,有的行有用unicode的,有用big-unicode,也有用utf8的,我需要把这一列取出来写对应编码的文本文件。当时读入的时候是判断的bom,但是在数据库里读出来的是string,怎么判断是什么编码呢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这么多编码方式,你如何存入的,如果是通过程序存入的话,string类型在存之前会自动转。 回渔翁,存入的时候我是这样的,用filestream读取txt到一个byte[] bt,判断前3个字节bom,如果是头2个是0xff 0xfe,就string s=encoding.unicode.getstring(bt),如果是0xfe 0xff就string s=encoding.BigEndianUnicode.GetString(bt),如果是0xef 0xbb 0xbf,就string s=encoding.utf8.getstring(bt),这样把string存入access的备注(文本类型)字段,打开数据库看表里字段是没有问题的,但是如果想从数据库里读出写入文件就出问题了,因为读出的是string,并不知道编码格式,也没法把string换成字节数组读前3个字节,如果硬是把byte[] bt=encoding.default.getbytes(s),然后filestream写入txt文件,如果当初是unicode/bigunicode/utf-8格式的,打开全是乱码。无奈我只好多用一个字段存储编码格式信息,但是不想这样做还是想在数据库里读出string的时候就能判断出编码格式。 如果你存的是文件内容,那我建议你用ole字段来替换备注,然后直接存byte[]数据。ref:http://blog.csdn.net/knight94/archive/2006/03/24/637800.aspx 回渔翁,那样不行啊,因为我是用的数据集,存string还得有操作呢,比如修改什么的,不是光存储。 to 那样不行啊,因为我是用的数据集,存string还得有操作呢,比如修改什么的,不是光存储ole类型数据也可以进行操作,例如修改等等,都是可以的。 那么现不说这问题,一个string如何变成字节数组呢。 C# 实现Math.Pow() 方法 收集汽车管理系统菜单功能意见 菜鸟初学~认识接口的作用 去掉office outlook的访问提示框. 消息队列Msmq关于接受消息的 access数据表导出到Excel的格式问题 调试的时候发现个很奇怪的问题不知所以然. vs2003里面直接启动程序,程序能够正常运行,但到Release目录中直接运行exe文件,报错。 javasrcript里window.open("",""....)控制最大化和非最大化的属性是那个?? 水晶报表问题!!--高手请进! 小问题,方法问题 一个关于文件下载的文题,请大家帮帮忙!!!!
http://blog.csdn.net/knight94/archive/2006/03/24/637800.aspx