
乱码肯定是编码问题的原因,你首先检查下你生成的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文件读取时中文乱码问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)