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

    技术2022-05-11  120

    问题描述: 使用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将会出现问题。  

    最新回复(0)