读取txt文件,中文乱码

使用BufferedReader进行读取和规定编码,中文乱码一般都是txt文本存的编码和项目读的编码不同造成的,所以要查看txt编码然后进行规定。如果不知道编码或者编码不固定,可以动态获取,但没试过,网上有人说可以有人说准确率低,具体百度 如何获取txt文件编码。

public static String readtxtContent(File file){
	        StringBuilder result = new StringBuilder();
	        try{
	            BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream(file),"gb2312"));  
	            String s = null;
	            while((s = br.readLine())!=null){//使用readLine方法,一次读一行
	                result.append(System.lineSeparator()+s);
	            }
	            br.close();    
	        }catch(Exception e){
	            e.printStackTrace();
	        }
	        return result.toString();
	    }
### Qt读取TXT文件中文乱码解决方案 当遇到Qt读取文本文件时出现的中文乱码问题,主要原因是未正确指定文件编码格式。为了确保能够正常显示中文字符,需采取适当措施来处理文件编码。 #### 设置正确的文本编码 对于`QFile`对象而言,默认情况下其返回的数据是以原始字节数组形式存在,即通过`readAll()`方法获取到的是未经解码的内容。因此,在尝试将其转换成字符串之前,应该先设定好相应的编码规则[^1]: ```cpp // 打开文件并设置编码为GBK QTextStream stream(&file); stream.setCodec("GBK"); QString content = stream.readAll(); ``` 另一种常见场景是在使用`QSettings`类操作配置文件时也会碰到类似的乱码现象。此时可以通过调用`setIniCodec()`函数指明所使用的编码标准,比如UTF-8: ```cpp QSettings settings("config.ini", QSettings::IniFormat); settings.setIniCodec(QTextCodec::codecForName("UTF-8")); QString value = QString::fromUtf8(settings.value("/paras/name").toByteArray()); ``` 值得注意的是,虽然UTF-8是一种广泛应用且支持几乎所有语言的文字编码方案,但对于仅含中文字符的情况来说,GBK可能具有更高的效率优势,因为它能更紧凑地表示这些字符[^3]。 综上所述,针对同类型的文件以及具体的应用需求选择合适的编码方式至关重要;同时也要注意保持整个项目内部的一致性和统一性,从而有效避免因编码差异而导致的各种潜在错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值