社区
C#
帖子详情
如何判断一个文本文件是gb2312格式还是utf8格式
上海程序员3
2006-12-25 11:17:52
如何判断一个文本文件是gb2312格式还是utf8格式
我找到一段代码,如下,但并不正确
Sample code as follows:
using (StreamReader sr = new StreamReader("TestFile.txt"))
{
if( sr.CurrentEncoding.Equals( Encoding.Utf8 ) )
Debug.WriteLine( "Utf8 encoding" );
}
...全文
1527
25
打赏
收藏
如何判断一个文本文件是gb2312格式还是utf8格式
如何判断一个文本文件是gb2312格式还是utf8格式 我找到一段代码,如下,但并不正确 Sample code as follows: using (StreamReader sr = new StreamReader("TestFile.txt")) { if( sr.CurrentEncoding.Equals( Encoding.Utf8 ) ) Debug.WriteLine( "Utf8 encoding" ); }
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
25 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
OriesMap
2006-12-26
打赏
举报
回复
也顶一把。
mood8125
2006-12-26
打赏
举报
回复
mark
smallboy_5
2006-12-25
打赏
举报
回复
楼主的代码是对的。
上海程序员3
2006-12-25
打赏
举报
回复
楼上的代码不灵呀,明明是gb2312的,结果它也认为是utf8格式
liujia_0421
2006-12-25
打赏
举报
回复
if (sr.CurrentEncoding.Equals(System.Text.UTF8Encoding.UTF8 ))
{
Console.WriteLine("utf8");
}
cangwu_lee
2006-12-25
打赏
举报
回复
根据汉字编码,但这个不能每一个字都能判断得出来的。但,一句话应该可以判断。
--------------------------------------------------------------
程序,犹如人生。
chenxdb
2006-12-25
打赏
举报
回复
在UTF文件中前面多了三個字節具體為:EFBBBF
dinglantao
2006-12-25
打赏
举报
回复
我也正等待高人答案
上海程序员3
2006-12-25
打赏
举报
回复
但怪的是editplus还没有碰到识别不了的文本文件格式,应该有标识的地方吧。
syczx
2006-12-25
打赏
举报
回复
把文件编码格式码写在文件前三个字节,这是文本文件的标准格吗?
就是说,也许notepad是这样写在文件前三个字节,能保证别的软件(比楼上说的editplus等)也是写在这个位置,也用这些代码吗?
my_infinity
2006-12-25
打赏
举报
回复
好象文件在经网络传输时都是预转成了UTF-8了哟?
my_infinity
2006-12-25
打赏
举报
回复
有谁能解释 liujia_0421(SnowLover) 有那么点。。问题的原因呢,谢谢
上海程序员3
2006-12-25
打赏
举报
回复
楼上的能传个代码给我么,我邮箱是a9a@163.com,我那论坛http://www.3http.com也可以上传文件的。
我上面发的代码都试了无效果,我的是文本文件,用editplus保存时选择了格式,但怪的是editplus就能正确判断,用UEStudio也能判断出格式来。
VirtualDesktop
2006-12-25
打赏
举报
回复
判断前3字节啊:EFBBBF
这个保管好用的,我都用了很久的了
LeoMaya
2006-12-25
打赏
举报
回复
汗...
mark
上海程序员3
2006-12-25
打赏
举报
回复
我试了,但还是一样,没有效果,这回是明明用了utf8格式,却它硬是显示说是gb2312。
yitian130
2006-12-25
打赏
举报
回复
study,study~! study~!
smallboy_5
2006-12-25
打赏
举报
回复
//保存当前Seek位置
stream.Seek(0, SeekOrigin.Begin);
int nByte = stream.ReadByte();
byte1 = Convert.ToByte(nByte);
byte2 = Convert.ToByte(stream.ReadByte());
if (stream.Length >= 3)
{
byte3 = Convert.ToByte(stream.ReadByte());
}
if (stream.Length >= 4)
{
byte4 = Convert.ToByte(stream.ReadByte());
}
//根据文件流的前4个字节判断Encoding
//Unicode {0xFF, 0xFE};
//BE-Unicode {0xFE, 0xFF};
//UTF8 = {0xEF, 0xBB, 0xBF};
if (byte1 == 0xFE && byte2 == 0xFF)//UnicodeBe
{
targetEncoding = Encoding.BigEndianUnicode;
}
if (byte1 == 0xFF && byte2 == 0xFE && byte3 != 0xFF)//Unicode
{
targetEncoding = Encoding.Unicode;
}
if (byte1 == 0xEF && byte2 == 0xBB && byte3 == 0xBF)//UTF8
{
targetEncoding = Encoding.UTF8;
}
详细的看上面的文章就可以了
zhedouyou
2006-12-25
打赏
举报
回复
up
runrunrun
2006-12-25
打赏
举报
回复
判前三个字节:EFBBBF
加载更多回复(5)
C#获取
文本文件
的编码,自动区分
GB2312
和
UTF8
C# 获取
文本文件
的编码,自动区分
GB2312
和
UTF8
https://www.cnblogs.com/guyun/p/4262587.html 以下是获取文件编码的
一个
类 using System; using System.IO; using System.Text; /// <summary> /// FileEncoding 的摘要说明 /// </summ...
如何一键把你的Unity脚本从
GB2312
编码
格式
改成
UTF8
编码
格式
如何一键把项目中的脚本从传统的中文编码
格式
改成
UTF8
格式
【C语言】ASCII、
GB2312
以及
UTF8
编码
格式
1. ASCII编码 百度百科 - “ASCII ((American Standard Code for Information Interchange): 美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是最通用的信息交换标准,并等同于国际标准ISO/IEC 646。ASCII第一次以规范标准的类型发表是在1967年,最后一次更新则是在1986年,到目前为止共定义了128个字符” ASCII码使用
一个
字节表示128种字符,其中0x00 ~ 0x1F是..
gb2312
转
utf8
java_Java实现
GB2312
文件转
UTF8
文件
有些书带的光盘的源代码是
GB2312
编码.通常IDE的编码是
UTF8
.这样直接导入IDE会乱码. 这时候就需要把
GB2312
的文件转成
UTF8
的文件.转化的思路很简单,读入流初始化的时候告诉jvm是
GB2312
编码,读入后jvm内部会转成UNICODE,写出的时候再告诉jvm以
UTF8
的形式写出即可.源代码如下:import java.io.*;public class Convert {priv...
C#
111,129
社区成员
642,541
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章