资源简介
有时我们不知道接收到的字节流是何种编码的字节流,当转换成字符串的时候也就不能正确转换。例如,实现pop3协议时,我接收到的网络比特流不知是utf-8还是gb2312,解码邮件时就可能会出现乱码。而此代码是判断接收到的字节流是何种编码形式。
代码片段和文件信息
using System;
namespace IdentifyEncoding.Text
{
#region Class IdentifyEncoding.....
///
/// 检测字符编码的类
///
///
///
///
///
/// /// IdentifyEncoding 用来检测 字节数组的编码.
/// Create By lion
/// 2005-02-21 22:00
/// Support .Net framework v1.1.4322
/// WebSite:www.lionsky.net(lion-a AT sohu.com)
/// ]]>
///
public class IdentifyEncoding
{
#region Fields.....
// Frequency tables to hold the GB Big5 and EUC-TW character
// frequencies
internal static int[][] GBFreq = new int[94][];
internal static int[][] GBKFreq = new int[126][];
internal static int[][] Big5Freq = new int[94][];
internal static int[][] EUC_TWFreq = new int[94][];
internal static string[] nicename = new string[]
{
“GB2312“ “GBK“ “HZ“ “Big5“ “CNS 11643“
“ISO 2022CN“ “UTF-8“ “Unicode“ “ASCII“ “OTHER“
};
#endregion
#region Methods.....
///
/// 初始化 的实例
///
public IdentifyEncoding()
{
Initialize_Frequencies();
}
#region GetEncodingName.....
///
/// 从指定的 中判断编码类型
///
/// 要判断的
/// 返回编码类型(“GB2312“ “GBK“ “HZ“ “Big5“ “CNS 11643“ “ISO 2022CN“ “UTF-8“ “Unicode“ “ASCII“ “OTHER“)
///
/// 以下示例演示了如何调用 方法:
///
/// IdentifyEncoding ide = new IdentifyEncoding();
/// Response.Write(ide.GetEncodingName(new Uri(“http://china5.nikkeibp.co.jp/china/news/com/200307/pr_com200307170131.html“)));
///
///
public virtual string GetEncodingName(System.Uri testurl)
{
byte[] rawtext = new byte[1024];
int bytesread = 0 byteoffset = 0;
System.IO.Stream chinesestream;
try
{
chinesestream = System.Net.WebRequest.Create(testurl.AbsoluteUri).GetResponse().GetResponseStream();
while ((bytesread = ReadInput(chinesestream ref rawtext byteoffset rawtext.Length - byteoffset)) > 0)
{
byteoffset += bytesread;
}
chinesestream.Close();
}
catch (System.Exception e)
{
System.Console.Error.WriteLine(“Error loading or using URL “ + e.ToString());
}
return GetEncodingName
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 98936 2008-10-24 12:21 IdentifyEncoding.cs
----------- --------- ---------- ----- ----
98936 1
相关资源
- 连接数据库并实现登录功能的
- Webrequests模拟登录
- Unity LitJson.dll
- 关于app.config共用的问题
- 基于UCC28019的高功率因数电源设计.r
- mjpg-streamer视频流服务器移植手册绝对
- progressMy.zip
- 简单的信息隐藏和DES加密
- 字符编码转换,utf16 utf8 ascii unicode
- .net 网上购物课程设计
- Mac地址修改源代码
- fluentftp组件
- 班级管理系统
- 向指定ip端口发送数据并等待接收
- 实现字符串异或操作
- 基于 qt的gstreamer 应用,
- PDA自动更新程序源码
- ERP数据模型用powerdesigner建模
- 兰勃特墨卡托投影.rar
- .Net Core 基本代码
-
dsofr
amer.ocx 2.3.0.2版本 - FPGA学习经验的总结之二:AXI4-Stream协
- 在.NET中读取嵌入和使用资源文件的方
- StreamChange.rar
- 人员信息管理系统,简易人员信息管
- datagridview添加一个合计行[美好实用版
- CSharp_Region类的方法使用图解
- CoreAudioApi.dll
- [深入浅出AutoCAD.NET二次开发].李冠亿
- edtFTPnetPro v8.6.5
评论
共有 条评论