C# 导入文件时字符集的处理问题

问题描述:
使用WEB导入文本文件时出现一个问题。我的导入过程是这样的,
1.  客户端得到文件上传到服务器中,
2.  把文件的内容写到数据库的临时表中,
3.  取出临时表的数据进行折分,
因为文本文件中他包含有汉字,存储到数据库中是以nvarchar 存储的,所以出现文本文件中一行的字符数是100个,但用C#读同的字符的长度就没有100了,变为小于100了,这样的话,根据对方提供的格式进行截取数据,就变的不准确了,经过分析,认为这是字符集的问题,但是怎么样把C#读出的字符变为100呢?或者文本文件中存储到数据库的时候,这个字段的类型让数据存储为双字节的方式。后一种方式经过测试用varchar 存储,但是C#读出的字符数还是小于100,所以就只有用前一种方式进行处理了,
解决问题方式:
在C#代码增加以下代码,就可以解决取数不准确问题。
private static Encoding encoding = Encoding.Default;
private  Byte[] bytes = encoding.GetBytes( 字符串 );
 
public static string SubstringByte(Byte[] bytes, int index, int length)
{              
return encoding.GetString(bytes, index, length);
}
结果分析:
以上的处理说明了一个问题,如果在处理汉字的问题上,最终还是要用转换为字节,否则用SubString将会出现问题。
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值