java filechannel读取txt 乱码

java filechannel读取txt 乱码,第1张

乱码肯定是编码问题的原因,你首先检查下你生成的TXT是不是乱码,然后再检查读入后输出的是不是乱码,每个有关字符串编码的处理都可以用new String(otherStringgetBytes("源编码集"),“目的编码集”);进行处理

首先,你做文件的输入输出的时候不该用doc的,word不是纯文本。另外,ifstream fin("D:/我的输入文件doc");

for(i=0;i<504;i++)

fin>>a[i];

for(i=0;i<504;i++)

cout<<a[i];

这一部分是从word里读东西,然后输出,可是word的刚开始时一堆格式信息,你是识别不了的,所以会出现乱码。

两个建议,

1、改成txt纯文本文件做文件读写。

2、读东西的时候别固定读多少字,读到文件尾了就要结束。不然你还是会读到乱码!

祝学习进步

将字符编码设置为''utf-8''

''WEB-INF/classes"中增加一个strutsproperties,内容如下:

strutslocale=zh_CN

strutsi18nencoding=UTF-8

$text = file_get_contents($filePath);

//$encodType = mb_detect_encoding($text);

define('UTF32_BIG_ENDIAN_BOM', chr(0x00) chr(0x00) chr(0xFE) chr(0xFF));

define('UTF32_LITTLE_ENDIAN_BOM', chr(0xFF) chr(0xFE) chr(0x00) chr(0x00));

define('UTF16_BIG_ENDIAN_BOM', chr(0xFE) chr(0xFF));

define('UTF16_LITTLE_ENDIAN_BOM', chr(0xFF) chr(0xFE));

define('UTF8_BOM', chr(0xEF) chr(0xBB) chr(0xBF));

$first2 = substr($text, 0, 2);

$first3 = substr($text, 0, 3);

$first4 = substr($text, 0, 3);

$encodType = "";

if ($first3 == UTF8_BOM)

$encodType = 'UTF-8 BOM';

else if ($first4 == UTF32_BIG_ENDIAN_BOM)

$encodType = 'UTF-32BE';

else if ($first4 == UTF32_LITTLE_ENDIAN_BOM)

$encodType = 'UTF-32LE';

else if ($first2 == UTF16_BIG_ENDIAN_BOM)

$encodType = 'UTF-16BE';

else if ($first2 == UTF16_LITTLE_ENDIAN_BOM)

$encodType = 'UTF-16LE';

//下面的判断主要还是判断ANSI编码的·

if ($encodType == '') {//即默认创建的txt文本-ANSI编码的

$content = iconv("GBK", "UTF-8", $text);

} else if ($encodType == 'UTF-8 BOM') {//本来就是UTF-8不用转换

$content = $text;

} else {//其他的格式都转化为UTF-8就可以了

$content = iconv($encodType, "UTF-8", $text);

}

以上就是关于java filechannel读取txt 乱码全部的内容,包括:java filechannel读取txt 乱码、c++从txt文件读取字符串输出时乱码、怎么解决读取txt文件读取时中文乱码问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9680287.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存