字节编码类型判断<转>
来源:互联网 发布:unity3d玻璃材质下载 编辑:程序博客网 时间:2024/06/06 00:37
namespaceMicroshaoft{
usingSystem; using System.IO; using System.Net;
#regionClass IdentifyEncoding.....
/// <summary> /// 检测字符编码的类 /// <seealso cref="Stream"/> /// <seealso cref="Uri"/> /// <seealso cref="FileInfo"/> /// </summary> /// <remarks> /// <![CDATA[ /// <strong>IdentifyEncoding</strong> 用来检测 <see cref="Uri"/>,<see cref="FileInfo"/>,<see cref="sbyte"/> 字节数组的编码. /// Create By lion <br/> /// 2005-02-21 22:00 <br/> /// Support .Net Framework v1.1.4322 <br/> /// WebSite:www.lionsky.net(lion-a AT sohu.com) <br/> /// ]]> /// </remarks>
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 = newint[126][]; internal static int[][]Big5Freq = newint[94][]; internal static int[][]EUC_TWFreq = newint[94][]; internal static string[]nicename = newstring[] { "GB2312", "GBK","HZ", "Big5", "CNS 11643" , "ISO 2022CN","UTF-8", "Unicode", "ASCII", "OTHER" }; #endregion #region Methods..... /// <summary> /// 初始化 <see cref="IdentifyEncoding"/> 的实例 /// </summary>
publicIdentifyEncoding() { Initialize_Frequencies(); }
#region GetEncodingName.....
/// <summary> /// 从指定的 <see cref="Uri"/> 中判断编码类型 /// </summary> /// <param name="testurl">要判断的 <see cref="Uri"/> </param> /// <returns>返回编码类型("GB2312", "GBK", "HZ", "Big5", "CNS 11643", "ISO 2022CN", "UTF-8", "Unicode", "ASCII", "OTHER")</returns> /// <example> /// 以下示例演示了如何调用 <see cref="GetEncodingName"/> 方法: /// <code> /// IdentifyEncoding ide = new IdentifyEncoding(); /// Response.Write(ide.GetEncodingName(new Uri("http://china5.nikkeibp.co.jp/china/news/com/200307/pr_com200307170131.html"))); /// </code> /// </example> public virtual string GetEncodingName(Uritesturl) { sbyte[]rawtext = newsbyte[1024]; int bytesread = 0, byteoffset = 0; Stream chinesestream; try { chinesestream = WebRequest.Create(testurl.AbsoluteUri).GetResponse().GetResponseStream(); while ((bytesread= ReadInput(chinesestream,ref rawtext, byteoffset, rawtext.Length- byteoffset)) >0) { byteoffset += bytesread; } chinesestream.Close(); } catch(Exception e) { Console.Error.WriteLine("Error loading or using URL " + e.ToString()); } returnGetEncodingName(rawtext); } /// <summary> /// 从指定的 <see cref="FileInfo"/> 中判断编码类型 /// </summary> /// <param name="testfile">要判断的 <see cref="FileInfo"/> </param> /// <returns>返回编码类型("GB2312", "GBK", "HZ", "Big5", "CNS 11643", "ISO 2022CN", "UTF-8", "Unicode", "ASCII", "OTHER")</returns> /// <example> /// 以下示例演示了如何调用 <see cref="GetEncodingName"/> 方法: /// <code> /// IdentifyEncoding ide = new IdentifyEncoding(); /// Response.Write(ide.GetEncodingName(new FileInfo(@"C:\test.txt"))); /// </code> /// </example> public virtual string GetEncodingName(FileInfotestfile) { FileStreamchinesefile; sbyte[] rawtext; rawtext = new sbyte[(int)FileLength(testfile)]; try { chinesefile = new FileStream(testfile.FullName,FileMode.Open,FileAccess.Read); ReadInput(chinesefile,ref rawtext, 0, rawtext.Length); } catch(Exception e) { Console.Error.WriteLine("Error: " + e); } returnGetEncodingName(rawtext); } /// <summary> /// 从指定的 <see cref="sbyte"/> 字节数组中判断编码类型 /// </summary> /// <param name="rawtext">要判断的 <see cref="FileInfo"/> </param> /// <returns>返回编码类型("GB2312", "GBK", "HZ", "Big5", "CNS 11643", "ISO 2022CN", "UTF-8", "Unicode", "ASCII", "OTHER")</returns> /// <example> /// 以下示例演示了如何调用 <see cref="GetEncodingName"/> 方法: /// <code> /// IdentifyEncoding ide = new IdentifyEncoding(); /// Response.Write(ide.GetEncodingName(IdentifyEncoding.ToSByteArray(System.Text.Encoding.GetEncoding("gb2312").GetBytes("Lion互动网络(www.lionsky.net)")))); /// </code> /// </example> public virtual string GetEncodingName(sbyte[]rawtext) { int[]scores; int index, maxscore =0; int encoding_guess =0; scores = new int[10]; //分析编码的概率 scores[0] =GB2312Probability(rawtext); scores[1] =GBKProbability(rawtext); scores[2] =HZProbability(rawtext); scores[3] =BIG5Probability(rawtext); scores[4] =ENCTWProbability(rawtext); scores[5] =ISO2022CNProbability(rawtext); scores[6] =UTF8Probability(rawtext); scores[7] =UnicodeProbability(rawtext); scores[8] =ASCIIProbability(rawtext); scores[9] =0; // Tabulate Scores for (index= 0; index < 10; index++) { if(scores[index] >maxscore) { encoding_guess = index; maxscore = scores[index]; } } // Return OTHER if nothing scored above 50 if (maxscore<= 50) { encoding_guess= 9; } returnnicename[encoding_guess]; } #endregion #region About Probability..... #region GB2312Probability /// <summary> /// 判断是GB2312编码的可能性 /// </summary> /// <param name="rawtext">要判断的 <see cref="sbyte"/> 字节数组</param> /// <returns>返回 0 至 100 之间的可能性</returns> internal virtual int GB2312Probability(sbyte[]rawtext) { int i, rawtextlen = 0; int dbchars = 1, gbchars= 1; long gbfreq = 0, totalfreq = 1; float rangeval = 0, freqval = 0; int row, column; // Stage 1: Check to see if characters fit into acceptable ranges rawtextlen = rawtext.Length; for (i= 0; i < rawtextlen - 1; i++) { if(rawtext[i] >=0) { //asciichars++; } else { dbchars++; if ((sbyte)Identity(0xA1) <= rawtext[i] &&rawtext[i] <= (sbyte)Identity(0xF7) && (sbyte)Identity(0xA1) <=rawtext[i+ 1] &&rawtext[i+ 1] <= (sbyte)Identity(0xFE)) { gbchars++; totalfreq += 500; row = rawtext[i] +256 - 0xA1; column = rawtext[i+ 1] +256 - 0xA1; if (GBFreq[row][column] != 0) { gbfreq += GBFreq[row][column]; } else if (15<= row && row <55) { gbfreq += 200; } } i++; } } rangeval = 50 * ((float)gbchars/ (float)dbchars); freqval = 50* ((float)gbfreq/ (float)totalfreq); return (int)(rangeval+ freqval); } #endregion #region GBKProbability..... /// <summary> /// 判断是GBK编码的可能性 /// </summary> /// <param name="rawtext">要判断的 <see cref="sbyte"/> 字节数组</param> /// <returns>返回 0 至 100 之间的可能性</returns> internal virtual int GBKProbability(sbyte[]rawtext) { int i, rawtextlen = 0; int dbchars = 1, gbchars= 1; long gbfreq = 0, totalfreq = 1; float rangeval = 0, freqval = 0; int row, column; // Stage 1: Check to see if characters fit into acceptable ranges rawtextlen = rawtext.Length; for (i= 0; i < rawtextlen - 1; i++) { if(rawtext[i] >=0) { //asciichars++; } else { dbchars++; if ((sbyte)Identity(0xA1) <= rawtext[i] &&rawtext[i] <= (sbyte)Identity(0xF7) && (sbyte)Identity(0xA1) <=rawtext[i+ 1] &&rawtext[i+ 1] <= (sbyte)Identity(0xFE)) { gbchars++; totalfreq += 500; row = rawtext[i] +256 - 0xA1; column = rawtext[i+ 1] +256 - 0xA1; if (GBFreq[row][column] != 0) { gbfreq += GBFreq[row][column]; } else if (15<= row && row <55) { gbfreq += 200; } } else if ((sbyte)Identity(0x81) <= rawtext[i] &&rawtext[i] <= (sbyte)Identity(0xFE) && (((sbyte)Identity(0x80) <=rawtext[i+ 1] &&rawtext[i+ 1] <= (sbyte)Identity(0xFE)) || ((sbyte)0x40<= rawtext[i+ 1] &&rawtext[i+ 1] <= (sbyte)0x7E))) { gbchars++; totalfreq += 500; row = rawtext[i] +256 - 0x81; if (0x40 <= rawtext[i+ 1] &&rawtext[i+ 1] <=0x7E) { column = rawtext[i+ 1] -0x40; } else { column = rawtext[i+ 1] +256 - 0x80; } if (GBKFreq[row][column] != 0) { gbfreq += GBKFreq[row][column]; } } i++; } } rangeval = 50 * ((float)gbchars/ (float)dbchars); freqval = 50* ((float)gbfreq/ (float)totalfreq); return (int)(rangeval+ freqval) -1; } #endregion #region HZProbability..... /// <summary> /// 判断是HZ编码的可能性 /// </summary> /// <param name="rawtext">要判断的 <see cref="sbyte"/> 字节数组</param> /// <returns>返回 0 至 100 之间的可能性</returns> internal virtual int HZProbability(sbyte[]rawtext) { int i, rawtextlen; int hzchars =0, dbchars =1; long hzfreq =0, totalfreq =1; float rangeval =0, freqval =0; int hzstart =0, hzend = 0; int row, column; rawtextlen = rawtext.Length; for (i= 0; i < rawtextlen; i++) { if(rawtext[i] =='~') { if (rawtext[i+ 1] =='{') { hzstart++; i += 2; while (i< rawtextlen- 1) { if (rawtext[i] ==0x0A || rawtext[i] ==0x0D) { break; } else if (rawtext[i] == '~' && rawtext[i+ 1] =='}') { hzend++; i++; break; } else if ((0x21<= rawtext[i] &&rawtext[i] <=0x77) && (0x21<= rawtext[i+ 1] &&rawtext[i+ 1] <=0x77)) { hzchars += 2; row = rawtext[i] -0x21; column = rawtext[i+ 1] -0x21; totalfreq += 500; if (GBFreq[row][column] != 0) { hzfreq += GBFreq[row][column]; } else if (15<= row && row <55) { hzfreq += 200; } } else if (((byte)0xA1<= rawtext[i] &&rawtext[i] <= (byte)0xF7) && ((byte)0xA1<= rawtext[i+ 1] &&rawtext[i+ 1] <= (byte)0xF7)) { hzchars += 2; row = rawtext[i] +256 - 0xA1; column = rawtext[i+ 1] +256 - 0xA1; totalfreq += 500; if (GBFreq[row][column] != 0) { hzfreq += GBFreq[row][column]; } else if (15<= row && row <55) { hzfreq += 200; } } dbchars +=2; i += 2; } } else if (rawtext[i+ 1] =='}') { hzend++; i++; } else if (rawtext[i+ 1] =='~') { i++; } } } if (hzstart >4) { rangeval= 50; } else if(hzstart > 1) { rangeval= 41; } else if(hzstart > 0) { // Only 39 in case the sequence happened to occur rangeval = 39; // in otherwise non-Hz text } else { rangeval= 0; } freqval= 50 * ((float)hzfreq/ (float)totalfreq); return (int)(rangeval+ freqval); } #endregion #region BIG5Probability..... /// <summary> /// 判断是BIG5编码的可能性 /// </summary> /// <param name="rawtext">要判断的 <see cref="sbyte"/> 字节数组</param> /// <returns>返回 0 至 100 之间的可能性</returns> internal virtual int BIG5Probability(sbyte[]rawtext) { int i, rawtextlen = 0; int dbchars = 1, bfchars= 1; float rangeval = 0, freqval = 0; long bffreq = 0, totalfreq = 1; int row, column; // Check to see if characters fit into acceptable ranges rawtextlen = rawtext.Length; for (i= 0; i < rawtextlen - 1; i++) { if(rawtext[i] >=0) { //asciichars++; } else { dbchars++; if ((sbyte)Identity(0xA1) <= rawtext[i] &&rawtext[i] <= (sbyte)Identity(0xF9) && (((sbyte)0x40<= rawtext[i+ 1] &&rawtext[i+ 1] <= (sbyte)0x7E) || ((sbyte)Identity(0xA1) <=rawtext[i+ 1] &&rawtext[i+ 1] <= (sbyte)Identity(0xFE)))) { bfchars++; totalfreq += 500; row = rawtext[i] +256 - 0xA1; if (0x40 <= rawtext[i+ 1] &&rawtext[i+ 1] <=0x7E) { column = rawtext[i+ 1] -0x40; } else { column = rawtext[i+ 1] +256 - 0x61; } if (Big5Freq[row][column] != 0) { bffreq += Big5Freq[row][column]; } else if (3 <= row &&row <= 37) { bffreq += 200; } } i++; } } rangeval = 50 * ((float)bfchars/ (float)dbchars); freqval = 50* ((float)bffreq/ (float)totalfreq); return (int)(rangeval+ freqval); } #endregion #region ENCTWProbability..... /// <summary> /// 判断是CNS11643(台湾)编码的可能性 /// </summary> /// <param name="rawtext">要判断的 <see cref="sbyte"/> 字节数组</param> /// <returns>返回 0 至 100 之间的可能性</returns> internal virtual int ENCTWProbability(sbyte[]rawtext) { int i, rawtextlen = 0; int dbchars = 1, cnschars= 1; long cnsfreq = 0, totalfreq = 1; float rangeval = 0, freqval = 0; int row, column; // Check to see if characters fit into acceptable ranges // and have expected frequency of use rawtextlen = rawtext.Length; for (i= 0; i < rawtextlen - 1; i++) { if(rawtext[i] >=0) { // in ASCII range //asciichars++; } else { // high bit set dbchars++; if (i+ 3 < rawtextlen && (sbyte)Identity(0x8E) == rawtext[i] && (sbyte)Identity(0xA1) <= rawtext[i+ 1] &&rawtext[i+ 1] <= (sbyte)Identity(0xB0) && (sbyte)Identity(0xA1) <=rawtext[i+ 2] &&rawtext[i+ 2] <= (sbyte)Identity(0xFE) && (sbyte)Identity(0xA1) <=rawtext[i+ 3] &&rawtext[i+ 3] <= (sbyte)Identity(0xFE)) { // Planes 1 - 16 cnschars++; // These are all less frequent chars so just ignore freq i += 3; } else if ((sbyte)Identity(0xA1) <= rawtext[i] &&rawtext[i] <= (sbyte)Identity(0xFE) && (sbyte)Identity(0xA1) <=rawtext[i+ 1] &&rawtext[i+ 1] <= (sbyte)Identity(0xFE)) { cnschars++; totalfreq += 500; row = rawtext[i] +256 - 0xA1; column = rawtext[i+ 1] +256 - 0xA1; if (EUC_TWFreq[row][column] != 0) { cnsfreq += EUC_TWFreq[row][column]; } else if (35<= row && row <=92) { cnsfreq += 150; } i++; } } } rangeval= 50 * ((float)cnschars/ (float)dbchars); freqval = 50* ((float)cnsfreq/ (float)totalfreq); return (int)(rangeval+ freqval); } #endregion #region ISO2022CNProbability..... /// <summary> /// 判断是ISO2022CN编码的可能性 /// </summary> /// <param name="rawtext">要判断的 <see cref="sbyte"/> 字节数组</param> /// <returns>返回 0 至 100 之间的可能性</returns> internal virtual int ISO2022CNProbability(sbyte[]rawtext) { int i, rawtextlen = 0; int dbchars = 1, isochars= 1; long isofreq = 0, totalfreq = 1; float rangeval = 0, freqval = 0; int row, column; // Check to see if characters fit into acceptable ranges // and have expected frequency of use rawtextlen = rawtext.Length; for (i= 0; i < rawtextlen - 1; i++) { if(rawtext[i] == (sbyte)0x1B&& i + 3 <rawtextlen) { // Escape char ESC if (rawtext[i+ 1] == (sbyte)0x24&& rawtext[i+ 2] ==0x29 && rawtext[i+ 3] == (sbyte)0x41) { // GB Escape $ ) A i += 4; while (rawtext[i] != (sbyte)0x1B) { dbchars++; if ((0x21<= rawtext[i] &&rawtext[i] <=0x77) && (0x21<= rawtext[i+ 1] &&rawtext[i+ 1] <=0x77)) { isochars++; row = rawtext[i] -0x21; column = rawtext[i+ 1] -0x21; totalfreq += 500; if (GBFreq[row][column] != 0) { isofreq += GBFreq[row][column]; } else if (15<= row && row <55) { isofreq += 200; } i++; } i++; } } else if (i+ 3 < rawtextlen && rawtext[i+ 1] == (sbyte)0x24&& rawtext[i+ 2] == (sbyte)0x29&& rawtext[i+ 3] == (sbyte)0x47) { // CNS Escape $ ) G i += 4; while (rawtext[i] != (sbyte)0x1B) { dbchars++; if ((sbyte)0x21<= rawtext[i] &&rawtext[i] <= (sbyte)0x7E&& (sbyte)0x21<= rawtext[i+ 1] &&rawtext[i+ 1] <= (sbyte)0x7E) { isochars++; totalfreq += 500; row = rawtext[i] -0x21; column = rawtext[i+ 1] -0x21; if (EUC_TWFreq[row][column] != 0) { isofreq += EUC_TWFreq[row][column]; } else if (35<= row && row <=92) { isofreq += 150; } i++; } i++; } } if (rawtext[i] == (sbyte)0x1B&& i + 2 <rawtextlen &&rawtext[i+ 1] == (sbyte)0x28&& rawtext[i+ 2] == (sbyte)0x42) { // ASCII: ESC ( B i += 2; } } } rangeval= 50 * ((float)isochars/ (float)dbchars); freqval = 50* ((float)isofreq/ (float)totalfreq); return (int)(rangeval+ freqval); } #endregion #region UTF8Probability..... /// <summary> /// 判断是UTF8编码的可能性 /// </summary> /// <param name="rawtext">要判断的 <see cref="sbyte"/> 字节数组</param> /// <returns>返回 0 至 100 之间的可能性</returns> internal virtual int UTF8Probability(sbyte[]rawtext) { int score = 0; int i, rawtextlen = 0; int goodbytes = 0, asciibytes = 0; // Maybe also use UTF8 Byte Order Mark: EF BB BF // Check to see if characters fit into acceptable ranges rawtextlen = rawtext.Length; for (i= 0; i < rawtextlen; i++) { if((rawtext[i] & (sbyte)0x7F) == rawtext[i]) { // One byte asciibytes++; // Ignore ASCII, can throw off count } else if(-64 <= rawtext[i] &&rawtext[i] <= -33&& i + 1 <rawtextlen && -128<= rawtext[i+ 1] &&rawtext[i+ 1] <= -65) { goodbytes += 2; i++; } else if(-32 <= rawtext[i] &&rawtext[i] <= -17&& i + 2 <rawtextlen && -128<= rawtext[i+ 1] &&rawtext[i+ 1] <= -65&& -128 <= rawtext[i+ 2] &&rawtext[i+ 2] <= -65) { goodbytes += 3; i += 2; } } if (asciibytes== rawtextlen) { return0; } score = (int)(100* ((float)goodbytes/ (float)(rawtextlen- asciibytes))); // If not above 98, reduce to zero to prevent coincidental matches // Allows for some (few) bad formed sequences if (score> 98) { returnscore; } else if (score> 95 && goodbytes > 30) { returnscore; } else { return 0; } } #endregion #region UnicodeProbability..... /// <summary> /// 判断是Unicode编码的可能性 /// </summary> /// <param name="rawtext">要判断的 <see cref="sbyte"/> 字节数组</param> /// <returns>返回 0 至 100 之间的可能性</returns> internal virtual int UnicodeProbability(sbyte[]rawtext) { //int score = 0; //int i, rawtextlen = 0; //int goodbytes = 0, asciibytes = 0; if (((sbyte)Identity(0xFE) == rawtext[0] && (sbyte)Identity(0xFF) == rawtext[1]) || ((sbyte)Identity(0xFF) == rawtext[0] && (sbyte)Identity(0xFE) == rawtext[1])) { return100; } return 0; } #endregion #region ASCIIProbability..... /// <summary> /// 判断是ASCII编码的可能性 /// </summary> /// <param name="rawtext">要判断的 <see cref="sbyte"/> 字节数组</param> /// <returns>返回 0 至 100 之间的可能性</returns> internal virtual int ASCIIProbability(sbyte[]rawtext) { int score = 70; int i, rawtextlen; rawtextlen = rawtext.Length; for (i= 0; i < rawtextlen; i++) { if(rawtext[i] <0) { score = score- 5; } else if(rawtext[i] == (sbyte)0x1B) { // ESC (used by ISO 2022) score= score - 5; } } return score; } #endregion #endregion #region Initialize_Frequencies..... /// <summary> /// 初始化必要的条件 /// </summary> internal virtual void Initialize_Frequencies() { int i; if (GBFreq[0] == null) { for(i =0; i < 94; i++) { GBFreq[i] = newint[94]; } #regionGBFreq[20][35] =599; GBFreq[49][26] =598; GBFreq[41][38] =597; GBFreq[17][26] =596; GBFreq[32][42] =595; GBFreq[39][42] =594; GBFreq[45][49] =593; GBFreq[51][57] =592; GBFreq[50][47] =591; GBFreq[42][90] =590; GBFreq[52][65] =589; GBFreq[53][47] =588; GBFreq[19][82] =587; GBFreq[31][19] =586; GBFreq[40][46] =585; GBFreq[24][89] =584; GBFreq[23][85] =583; GBFreq[20][28] =582; GBFreq[42][20] =581; GBFreq[34][38] =580; GBFreq[45][9] =579; GBFreq[54][50] =578; GBFreq[25][44] =577; GBFreq[35][66] =576; GBFreq[20][55] =575; GBFreq[18][85] =574; GBFreq[20][31] =573; GBFreq[49][17] =572; GBFreq[41][16] =571; GBFreq[35][73] =570; GBFreq[20][34] =569; GBFreq[29][44] =568; GBFreq[35][38] =567; GBFreq[49][9] =566; GBFreq[46][33] =565; GBFreq[49][51] =564; GBFreq[40][89] =563; GBFreq[26][64] =562; GBFreq[54][51] =561; GBFreq[54][36] =560; GBFreq[39][4] =559; GBFreq[53][13] =558; GBFreq[24][92] =557; GBFreq[27][49] =556; GBFreq[48][6] =555; GBFreq[21][51] =554; GBFreq[30][40] =553; GBFreq[42][92] =552; GBFreq[31][78] =551; GBFreq[25][82] =550; GBFreq[47][0] =549; GBFreq[34][19] =548; GBFreq[47][35] =547; GBFreq[21][63] =546; GBFreq[43][75] =545; GBFreq[21][87] =544; GBFreq[35][59] =543; GBFreq[25][34] =542; GBFreq[21][27] =541; GBFreq[39][26] =540; GBFreq[34][26] =539; GBFreq[39][52] =538; GBFreq[50][57] =537; GBFreq[37][79] =536; GBFreq[26][24] =535; GBFreq[22][1] =534; GBFreq[18][40] =533; GBFreq[41][33] =532; GBFreq[53][26] =531; GBFreq[54][86] =530; GBFreq[20][16] =529; GBFreq[46][74] =528; GBFreq[30][19] =527; GBFreq[45][35] =526; GBFreq[45][61] =525; GBFreq[30][9] =524; GBFreq[41][53] =523; GBFreq[41][13] =522; GBFreq[50][34] =521; GBFreq[53][86] =520; GBFreq[47][47] =519; GBFreq[22][28] =518; GBFreq[50][53] =517; GBFreq[39][70] =516; GBFreq[38][15] =515; GBFreq[42][88] =514; GBFreq[16][29] =513; GBFreq[27][90] =512; GBFreq[29][12] =511; GBFreq[44][22] =510; GBFreq[34][69] =509; GBFreq[24][10] =508; GBFreq[44][11] =507; GBFreq[39][92] =506; GBFreq[49][48] =505; GBFreq[31][46] =504; GBFreq[19][50] =503; GBFreq[21][14] =502; GBFreq[32][28] =501; GBFreq[18][3] =500; GBFreq[53][9] =499; GBFreq[34][80] =498; GBFreq[48][88] =497; GBFreq[46][53] =496; GBFreq[22][53] =495; GBFreq[28][10] =494; GBFreq[44][65] =493; GBFreq[20][10] =492; GBFreq[40][76] =491; GBFreq[47][8] =490; GBFreq[50][74] =489; GBFreq[23][62] =488; GBFreq[49][65] =487; GBFreq[28][87] =486; GBFreq[15][48] =485; GBFreq[22][7] =484; GBFreq[19][42] =483; GBFreq[41][20] =482; GBFreq[26][55] =481; GBFreq[21][93] =480; GBFreq[31][76] =479; GBFreq[34][31] =478; GBFreq[20][66] =477; GBFreq[51][33] =476; GBFreq[34][86] =475; GBFreq[37][67] =474; GBFreq[53][53] =473; GBFreq[40][88] =472; GBFreq[39][10] =471; GBFreq[24][3] =470; GBFreq[27][25] =469; GBFreq[26][15] =468; GBFreq[21][88] =467; GBFreq[52][62] =466; GBFreq[46][81] =465; GBFreq[38][72] =464; GBFreq[17][30] =463; GBFreq[52][92] =462; GBFreq[34][90] =461; GBFreq[21][7] =460; GBFreq[36][13] =459; GBFreq[45][41] =458; GBFreq[32][5] =457; GBFreq[26][89] =456; GBFreq[23][87] =455; GBFreq[20][39] =454; GBFreq[27][23] =453; GBFreq[25][59] =452; GBFreq[49][20] =451; GBFreq[54][77] =450; GBFreq[27][67] =449; GBFreq[47][33] =448; GBFreq[41][17] =447; GBFreq[19][81] =446; GBFreq[16][66] =445; GBFreq[45][26] =444; GBFreq[49][81] =443; GBFreq[53][55] =442; GBFreq[16][26] =441; GBFreq[54][62] =440; GBFreq[20][70] =439; GBFreq[42][35] =438; GBFreq[20][57] =437; GBFreq[34][36] =436; GBFreq[46][63] =435; GBFreq[19][45] =434; GBFreq[21][10] =433; GBFreq[52][93] =432; GBFreq[25][2] =431; GBFreq[30][57] =430; GBFreq[41][24] =429; GBFreq[28][43] =428; GBFreq[45][86] =427; GBFreq[51][56] =426; GBFreq[37][28] =425; GBFreq[52][69] =424; GBFreq[43][92] =423; GBFreq[41][31] =422; GBFreq[37][87] =421; GBFreq[47][36] =420; GBFreq[16][16] =419; GBFreq[40][56] =418; GBFreq[24][55] =417; GBFreq[17][1] =416; GBFreq[35][57] =415; GBFreq[27][50] =414; GBFreq[26][14] =413; GBFreq[50][40] =412; GBFreq[39][19] =411; GBFreq[19][89] =410; GBFreq[29][91] =409; GBFreq[17][89] =408; GBFreq[39][74] =407; GBFreq[46][39] =406; GBFreq[40][28] =405; GBFreq[45][68] =404; GBFreq[43][10] =403; GBFreq[42][13] =402; GBFreq[44][81] =401; GBFreq[41][47] =400; GBFreq[48][58] =399; GBFreq[43][68] =398; GBFreq[16][79] =397; GBFreq[19][5] =396; GBFreq[54][59] =395; GBFreq[17][36] =394; GBFreq[18][0] =393; GBFreq[41][5] =392; GBFreq[41][72] =391; GBFreq[16][39] =390; GBFreq[54][0] =389; GBFreq[51][16] =388; GBFreq[29][36] =387; GBFreq[47][5] =386; GBFreq[47][51] =385; GBFreq[44][7] =384; GBFreq[35][30] =383; GBFreq[26][9] =382; GBFreq[16][7] =381; GBFreq[32][1] =380; GBFreq[33][76] =379; GBFreq[34][91] =378; GBFreq[52][36] =377; GBFreq[26][77] =376; GBFreq[35][48] =375; GBFreq[40][80] =374; GBFreq[41][92] =373; GBFreq[27][93] =372; GBFreq[15][17] =371; GBFreq[16][76] =370; GBFreq[51][12] =369; GBFreq[18][20] =368; GBFreq[15][54] =367; GBFreq[50][5] =366; GBFreq[33][22] =365; GBFreq[37][57] =364; GBFreq[28][47] =363; GBFreq[42][31] =362; GBFreq[18][2] =361; GBFreq[43][64] =360; GBFreq[23][47] =359; GBFreq[28][79] =358; GBFreq[25][45] =357; GBFreq[23][91] =356; GBFreq[22][19] =355; GBFreq[25][46] =354; GBFreq[22][36] =353; GBFreq[54][85] =352; GBFreq[46][20] =351; GBFreq[27][37] =350; GBFreq[26][81] =349; GBFreq[42][29] =348; GBFreq[31][90] =347; GBFreq[41][59] =346; GBFreq[24][65] =345; GBFreq[44][84] =344; GBFreq[24][90] =343; GBFreq[38][54] =342; GBFreq[28][70] =341; GBFreq[27][15] =340; GBFreq[28][80] =339; GBFreq[29][8] =338; GBFreq[45][80] =337; GBFreq[53][37] =336; GBFreq[28][65] =335; GBFreq[23][86] =334; GBFreq[39][45] =333; GBFreq[53][32] =332; GBFreq[38][68] =331; GBFreq[45][78] =330; GBFreq[43][7] =329; GBFreq[46][82] =328; GBFreq[27][38] =327; GBFreq[16][62] =326; GBFreq[24][17] =325; GBFreq[22][70] =324; GBFreq[52][28] =323; GBFreq[23][40] =322; GBFreq[28][50] =321; GBFreq[42][91] =320; GBFreq[47][76] =319; GBFreq[15][42] =318; GBFreq[43][55] =317; GBFreq[29][84] =316; GBFreq[44][90] =315; GBFreq[53][16] =314; GBFreq[22][93] =313; GBFreq[34][10] =312; GBFreq[32][53] =311; GBFreq[43][65] =310; GBFreq[28][7] =309; GBFreq[35][46] =308; GBFreq[21][39] =307; GBFreq[44][18] =306; GBFreq[40][10] =305; GBFreq[54][53] =304; GBFreq[38][74] =303; GBFreq[28][26] =302; GBFreq[15][13] =301; GBFreq[39][34] =300; GBFreq[39][46] =299; GBFreq[42][66] =298; GBFreq[33][58] =297; GBFreq[15][56] =296; GBFreq[18][51] =295; GBFreq[49][68] =294; GBFreq[30][37] =293; GBFreq[51][84] =292; GBFreq[51][9] =291; GBFreq[40][70] =290; GBFreq[41][84] =289; GBFreq[28][64] =288; GBFreq[32][88] =287; GBFreq[24][5] =286; GBFreq[53][23] =285; GBFreq[42][27] =284; GBFreq[22][38] =283; GBFreq[32][86] =282; GBFreq[34][30] =281; GBFreq[38][63] =280; GBFreq[24][59] =279; GBFreq[22][81] =278; GBFreq[32][11] =277; GBFreq[51][21] =276; GBFreq[54][41] =275; GBFreq[21][50] =274; GBFreq[23][89] =273; GBFreq[19][87] =272; GBFreq[26][7] =271; GBFreq[30][75] =270; GBFreq[43][84] =269; GBFreq[51][25] =268; GBFreq[16][67] =267; GBFreq[32][9] =266; GBFreq[48][51] =265; GBFreq[39][7] =264; GBFreq[44][88] =263; GBFreq[52][24] =262; GBFreq[23][34] =261; GBFreq[32][75] =260; GBFreq[19][10] =259; GBFreq[28][91] =258; GBFreq[32][83] =257; GBFreq[25][75] =256; GBFreq[53][45] =255; GBFreq[29][85] =254; GBFreq[53][59] =253; GBFreq[16][2] =252; GBFreq[19][78] =251; GBFreq[15][75] =250; GBFreq[51][42] =249; GBFreq[45][67] =248; GBFreq[15][74] =247; GBFreq[25][81] =246; GBFreq[37][62] =245; GBFreq[16][55] =244; GBFreq[18][38] =243; GBFreq[23][23] =242; GBFreq[38][30] =241; GBFreq[17][28] =240; GBFreq[44][73] =239; GBFreq[23][78] =238; GBFreq[40][77] =237; GBFreq[38][87] =236; GBFreq[27][19] =235; GBFreq[38][82] =234; GBFreq[37][22] =233; GBFreq[41][30] =232; GBFreq[54][9] =231; GBFreq[32][30] =230; GBFreq[30][52] =229; GBFreq[40][84] =228; GBFreq[53][57] =227; GBFreq[27][27] =226; GBFreq[38][64] =225; GBFreq[18][43] =224; GBFreq[23][69] =223; GBFreq[28][12] =222; GBFreq[50][78] =221; GBFreq[50][1] =220; GBFreq[26][88] =219; GBFreq[36][40] =218; GBFreq[33][89] =217; GBFreq[41][28] =216; GBFreq[31][77] =215; GBFreq[46][1] =214; GBFreq[47][19] =213; GBFreq[35][55] =212; GBFreq[41][21] =211; GBFreq[27][10] =210; GBFreq[32][77] =209; GBFreq[26][37] =208; GBFreq[20][33] =207; GBFreq[41][52] =206; GBFreq[32][18] =205; GBFreq[38][13] =204; GBFreq[20][18] =203; GBFreq[20][24] =202; GBFreq[45][19] =201; GBFreq[18][53] =200; #endregion } if (GBKFreq[0] == null) { for(i =0; i < 126; i++) { GBKFreq[i] = newint[191]; } #regionGBKFreq[52][132] =600; GBKFreq[73][135] =599; GBKFreq[49][123] =598; GBKFreq[77][146] =597; GBKFreq[81][123] =596; GBKFreq[82][144] =595; GBKFreq[51][179] =594; GBKFreq[83][154] =593; GBKFreq[71][139] =592; GBKFreq[64][139] =591; GBKFreq[85][144] =590; GBKFreq[52][125] =589; GBKFreq[88][25] =588; GBKFreq[81][106] =587; GBKFreq[81][148] =586; GBKFreq[62][137] =585; GBKFreq[94][0] =584; GBKFreq[1][64] =583; GBKFreq[67][163] =582; GBKFreq[20][190] =581; GBKFreq[57][131] =580; GBKFreq[29][169] =579; GBKFreq[72][143] =578; GBKFreq[0][173] =577; GBKFreq[11][23] =576; GBKFreq[61][141] =575; GBKFreq[60][123] =574; GBKFreq[81][114] =573; GBKFreq[82][131] =572; GBKFreq[67][156] =571; GBKFreq[71][167] =570; GBKFreq[20][50] =569; GBKFreq[77][132] =568; GBKFreq[84][38] =567; GBKFreq[26][29] =566; GBKFreq[74][187] =565; GBKFreq[62][116] =564; GBKFreq[67][135] =563; GBKFreq[5][86] =562; GBKFreq[72][186] =561; GBKFreq[75][161] =560; GBKFreq[78][130] =559; GBKFreq[94][30] =558; GBKFreq[84][72] =557; GBKFreq[1][67] =556; GBKFreq[75][172] =555; GBKFreq[74][185] =554; GBKFreq[53][160] =553; GBKFreq[123][14] =552; GBKFreq[79][97] =551; GBKFreq[85][110] =550; GBKFreq[78][171] =549; GBKFreq[52][131] =548; GBKFreq[56][100] =547; GBKFreq[50][182] =546; GBKFreq[94][64] =545; GBKFreq[106][74] =544; GBKFreq[11][102] =543; GBKFreq[53][124] =542; GBKFreq[24][3] =541; GBKFreq[86][148] =540; GBKFreq[53][184] =539; GBKFreq[86][147] =538; GBKFreq[96][161] =537; GBKFreq[82][77] =536; GBKFreq[59][146] =535; GBKFreq[84][126] =534; GBKFreq[79][132] =533; GBKFreq[85][123] =532; GBKFreq[71][101] =531; GBKFreq[85][106] =530; GBKFreq[6][184] =529; GBKFreq[57][156] =528; GBKFreq[75][104] =527; GBKFreq[50][137] =526; GBKFreq[79][133] =525; GBKFreq[76][108] =524; GBKFreq[57][142] =523; GBKFreq[84][130] =522; GBKFreq[52][128] =521; GBKFreq[47][44] =520; GBKFreq[52][152] =519; GBKFreq[54][104] =518; GBKFreq[30][47] =517; GBKFreq[71][123] =516; GBKFreq[52][107] =515; GBKFreq[45][84] =514; GBKFreq[107][118] =513; GBKFreq[5][161] =512; GBKFreq[48][126] =511; GBKFreq[67][170] =510; GBKFreq[43][6] =509; GBKFreq[70][112] =508; GBKFreq[86][174] =507; GBKFreq[84][166] =506; GBKFreq[79][130] =505; GBKFreq[57][141] =504; GBKFreq[81][178] =503; GBKFreq[56][187] =502; GBKFreq[81][162] =501; GBKFreq[53][104] =500; GBKFreq[123][35] =499; GBKFreq[70][169] =498; GBKFreq[69][164] =497; GBKFreq[109][61] =496; GBKFreq[73][130] =495; GBKFreq[62][134] =494; GBKFreq[54][125] =493; GBKFreq[79][105] =492; GBKFreq[70][165] =491; GBKFreq[71][189] =490; GBKFreq[23][147] =489; GBKFreq[51][139] =488; GBKFreq[47][137] =487; GBKFreq[77][123] =486; GBKFreq[86][183] =485; GBKFreq[63][173] =484; GBKFreq[79][144] =483; GBKFreq[84][159] =482; GBKFreq[60][91] =481; GBKFreq[66][187] =480; GBKFreq[73][114] =479; GBKFreq[85][56] =478; GBKFreq[71][149] =477; GBKFreq[84][189] =476; GBKFreq[104][31] =475; GBKFreq[83][82] =474; GBKFreq[68][35] =473; GBKFreq[11][77] =472; GBKFreq[15][155] =471; GBKFreq[83][153] =470; GBKFreq[71][1] =469; GBKFreq[53][190] =468; GBKFreq[50][135] =467; GBKFreq[3][147] =466; GBKFreq[48][136] =465; GBKFreq[66][166] =464; GBKFreq[55][159] =463; GBKFreq[82][150] =462; GBKFreq[58][178] =461; GBKFreq[64][102] =460; GBKFreq[16][106] =459; GBKFreq[68][110] =458; GBKFreq[54][14] =457; GBKFreq[60][140] =456; GBKFreq[91][71] =455; GBKFreq[54][150] =454; GBKFreq[78][177] =453; GBKFreq[78][117] =452; GBKFreq[104][12] =451; GBKFreq[73][150] =450; GBKFreq[51][142] =449; GBKFreq[81][145] =448; GBKFreq[66][183] =447; GBKFreq[51][178] =446; GBKFreq[75][107] =445; GBKFreq[65][119] =444; GBKFreq[69][176] =443; GBKFreq[59][122] =442; GBKFreq[78][160] =441; GBKFreq[85][183] =440; GBKFreq[105][16] =439; GBKFreq[73][110] =438; GBKFreq[104][39] =437; GBKFreq[119][16] =436; GBKFreq[76][162] =435; GBKFreq[67][152] =434; GBKFreq[82][24] =433; GBKFreq[73][121] =432; GBKFreq[83][83] =431; GBKFreq[82][145] =430; GBKFreq[49][133] =429; GBKFreq[94][13] =428; GBKFreq[58][139] =427; GBKFreq[74][189] =426; GBKFreq[66][177] =425; GBKFreq[85][184] =424; GBKFreq[55][183] =423; GBKFreq[71][107] =422; GBKFreq[11][98] =421; GBKFreq[72][153] =420; GBKFreq[2][137] =419; GBKFreq[59][147] =418; GBKFreq[58][152] =417; GBKFreq[55][144] =416; GBKFreq[73][125] =415; GBKFreq[52][154] =414; GBKFreq[70][178] =413; GBKFreq[79][148] =412; GBKFreq[63][143] =411; GBKFreq[50][140] =410; GBKFreq[47][145] =409; GBKFreq[48][123] =408; GBKFreq[56][107] =407; GBKFreq[84][83] =406; GBKFreq[59][112] =405; GBKFreq[124][72] =404; GBKFreq[79][99] =403; GBKFreq[3][37] =402; GBKFreq[114][55] =401; GBKFreq[85][152] =400; GBKFreq[60][47] =399; GBKFreq[65][96] =398; GBKFreq[74][110] =397; GBKFreq[86][182] =396; GBKFreq[50][99] =395; GBKFreq[67][186] =394; GBKFreq[81][74] =393; GBKFreq[80][37] =392; GBKFreq[21][60] =391; GBKFreq[110][12] =390; GBKFreq[60][162] =389; GBKFreq[29][115] =388; GBKFreq[83][130] =387; GBKFreq[52][136] =386; GBKFreq[63][114] =385; GBKFreq[49][127] =384; GBKFreq[83][109] =383; GBKFreq[66][128] =382; GBKFreq[78][136] =381; GBKFreq[81][180] =380; GBKFreq[76][104] =379; GBKFreq[56][156] =378; GBKFreq[61][23] =377; GBKFreq[4][30] =376; GBKFreq[69][154] =375; GBKFreq[100][37] =374; GBKFreq[54][177] =373; GBKFreq[23][119] =372; GBKFreq[71][171] =371; GBKFreq[84][146] =370; GBKFreq[20][184] =369; GBKFreq[86][76] =368; GBKFreq[74][132] =367; GBKFreq[47][97] =366; GBKFreq[82][137] =365; GBKFreq[94][56] =364; GBKFreq[92][30] =363; GBKFreq[19][117] =362; GBKFreq[48][173] =361; GBKFreq[2][136] =360; GBKFreq[7][182] =359; GBKFreq[74][188] =358; GBKFreq[14][132] =357; GBKFreq[62][172] =356; GBKFreq[25][39] =355; GBKFreq[85][129] =354; GBKFreq[64][98] =353; GBKFreq[67][127] =352; GBKFreq[72][167] =351; GBKFreq[57][143] =350; GBKFreq[76][187] =349; GBKFreq[83][181] =348; GBKFreq[84][10] =347; GBKFreq[55][166] =346; GBKFreq[55][188] =345; GBKFreq[13][151] =344; GBKFreq[62][124] =343; GBKFreq[53][136] =342; GBKFreq[106][57] =341; GBKFreq[47][166] =340; GBKFreq[109][30] =339; GBKFreq[78][114] =338; GBKFreq[83][19] =337; GBKFreq[56][162] =336; GBKFreq[60][177] =335; GBKFreq[88][9] =334; GBKFreq[74][163] =333; GBKFreq[52][156] =332; GBKFreq[71][180] =331; GBKFreq[60][57] =330; GBKFreq[72][173] =329; GBKFreq[82][91] =328; GBKFreq[51][186] =327; GBKFreq[75][86] =326; GBKFreq[75][78] =325; GBKFreq[76][170] =324; GBKFreq[60][147] =323; GBKFreq[82][75] =322; GBKFreq[80][148] =321; GBKFreq[86][150] =320; GBKFreq[13][95] =319; GBKFreq[0][11] =318; GBKFreq[84][190] =317; GBKFreq[76][166] =316; GBKFreq[14][72] =315; GBKFreq[67][144] =314; GBKFreq[84][44] =313; GBKFreq[72][125] =312; GBKFreq[66][127] =311; GBKFreq[60][25] =310; GBKFreq[70][146] =309; GBKFreq[79][135] =308; GBKFreq[54][135] =307; GBKFreq[60][104] =306; GBKFreq[55][132] =305; GBKFreq[94][2] =304; GBKFreq[54][133] =303; GBKFreq[56][190] =302; GBKFreq[58][174] =301; GBKFreq[80][144] =300; GBKFreq[85][113] =299; #endregion } if (Big5Freq[0] == null) { for(i =0; i < 94; i++) { Big5Freq[i] = newint[158]; } #regionBig5Freq[9][89] =600; Big5Freq[11][15] =599; Big5Freq[3][66] =598; Big5Freq[6][121] =597; Big5Freq[3][0] =596; Big5Freq[5][82] =595; Big5Freq[3][42] =594; Big5Freq[5][34] =593; Big5Freq[3][8] =592; Big5Freq[3][6] =591; Big5Freq[3][67] =590; Big5Freq[7][139] =589; Big5Freq[23][137] =588; Big5Freq[12][46] =587; Big5Freq[4][8] =586; Big5Freq[4][41] =585; Big5Freq[18][47] =584; Big5Freq[12][114] =583; Big5Freq[6][1] =582; Big5Freq[22][60] =581; Big5Freq[5][46] =580; Big5Freq[11][79] =579; Big5Freq[3][23] =578; Big5Freq[7][114] =577; Big5Freq[29][102] =576; Big5Freq[19][14] =575; Big5Freq[4][133] =574; Big5Freq[3][29] =573; Big5Freq[4][109] =572; Big5Freq[14][127] =571; Big5Freq[5][48] =570; Big5Freq[13][104] =569; Big5Freq[3][132] =568; Big5Freq[26][64] =567; Big5Freq[7][19] =566; Big5Freq[4][12] =565; Big5Freq[11][124] =564; Big5Freq[7][89] =563; Big5Freq[15][124] =562; Big5Freq[4][108] =561; Big5Freq[19][66] =560; Big5Freq[3][21] =559; Big5Freq[24][12] =558; Big5Freq[28][111] =557; Big5Freq[12][107] =556; Big5Freq[3][112] =555; Big5Freq[8][113] =554; Big5Freq[5][40] =553; Big5Freq[26][145] =552; Big5Freq[3][48] =551; Big5Freq[3][70] =550; Big5Freq[22][17] =549; Big5Freq[16][47] =548; Big5Freq[3][53] =547; Big5Freq[4][24] =546; Big5Freq[32][120] =545; Big5Freq[24][49] =544; Big5Freq[24][142] =543; Big5Freq[18][66] =542; Big5Freq[29][150] =541; Big5Freq[5][122] =540; Big5Freq[5][114] =539; Big5Freq[3][44] =538; Big5Freq[10][128] =537; Big5Freq[15][20] =536; Big5Freq[13][33] =535; Big5Freq[14][87] =534; Big5Freq[3][126] =533; Big5Freq[4][53] =532; Big5Freq[4][40] =531; Big5Freq[9][93] =530; Big5Freq[15][137] =529; Big5Freq[10][123] =528; Big5Freq[4][56] =527; Big5Freq[5][71] =526; Big5Freq[10][8] =525; Big5Freq[5][16] =524; Big5Freq[5][146] =523; Big5Freq[18][88] =522; Big5Freq[24][4] =521; Big5Freq[20][47] =520; Big5Freq[5][33] =519; Big5Freq[9][43] =518; Big5Freq[20][12] =517; Big5Freq[20][13] =516; Big5Freq[5][156] =515; Big5Freq[22][140] =514; Big5Freq[8][146] =513; Big5Freq[21][123] =512; Big5Freq[4][90] =511; Big5Freq[5][62] =510; Big5Freq[17][59] =509; Big5Freq[10][37] =508; Big5Freq[18][107] =507; Big5Freq[14][53] =506; Big5Freq[22][51] =505; Big5Freq[8][13] =504; Big5Freq[5][29] =503; Big5Freq[9][7] =502; Big5Freq[22][14] =501; Big5Freq[8][55] =500; Big5Freq[33][9] =499; Big5Freq[16][64] =498; Big5Freq[7][131] =497; Big5Freq[34][4] =496; Big5Freq[7][101] =495; Big5Freq[11][139] =494; Big5Freq[3][135] =493; Big5Freq[7][102] =492; Big5Freq[17][13] =491; Big5Freq[3][20] =490; Big5Freq[27][106] =489; Big5Freq[5][88] =488; Big5Freq[6][33] =487; Big5Freq[5][139] =486; Big5Freq[6][0] =485; Big5Freq[17][58] =484; Big5Freq[5][133] =483; Big5Freq[9][107] =482; Big5Freq[23][39] =481; Big5Freq[5][23] =480; Big5Freq[3][79] =479; Big5Freq[32][97] =478; Big5Freq[3][136] =477; Big5Freq[4][94] =476; Big5Freq[21][61] =475; Big5Freq[23][123] =474; Big5Freq[26][16] =473; Big5Freq[24][137] =472; Big5Freq[22][18] =471; Big5Freq[5][1] =470; Big5Freq[20][119] =469; Big5Freq[3][7] =468; Big5Freq[10][79] =467; Big5Freq[15][105] =466; Big5Freq[3][144] =465; Big5Freq[12][80] =464; Big5Freq[15][73] =463; Big5Freq[3][19] =462; Big5Freq[8][109] =461; Big5Freq[3][15] =460; Big5Freq[31][82] =459; Big5Freq[3][43] =458; Big5Freq[25][119] =457; Big5Freq[16][111] =456; Big5Freq[7][77] =455; Big5Freq[3][95] =454; Big5Freq[24][82] =453; Big5Freq[7][52] =452; Big5Freq[9][151] =451; Big5Freq[3][129] =450; Big5Freq[5][87] =449; Big5Freq[3][55] =448; Big5Freq[8][153] =447; Big5Freq[4][83] =446; Big5Freq[3][114] =445; Big5Freq[23][147] =444; Big5Freq[15][31] =443; Big5Freq[3][54] =442; Big5Freq[11][122] =441; Big5Freq[4][4] =440; Big5Freq[34][149] =439; Big5Freq[3][17] =438; Big5Freq[21][64] =437; Big5Freq[26][144] =436; Big5Freq[4][62] =435; Big5Freq[8][15] =434; Big5Freq[35][80] =433; Big5Freq[7][110] =432; Big5Freq[23][114] =431; Big5Freq[3][108] =430; Big5Freq[3][62] =429; Big5Freq[21][41] =428; Big5Freq[15][99] =427; Big5Freq[5][47] =426; Big5Freq[4][96] =425; Big5Freq[20][122] =424; Big5Freq[5][21] =423; Big5Freq[4][157] =422; Big5Freq[16][14] =421; Big5Freq[3][117] =420; Big5Freq[7][129] =419; Big5Freq[4][27] =418; Big5Freq[5][30] =417; Big5Freq[22][16] =416; Big5Freq[5][64] =415; Big5Freq[17][99] =414; Big5Freq[17][57] =413; Big5Freq[8][105] =412; Big5Freq[5][112] =411; Big5Freq[20][59] =410; Big5Freq[6][129] =409; Big5Freq[18][17] =408; Big5Freq[3][92] =407; Big5Freq[28][118] =406; Big5Freq[3][109] =405; Big5Freq[31][51] =404; Big5Freq[13][116] =403; Big5Freq[6][15] =402; Big5Freq[36][136] =401; Big5Freq[12][74] =400; Big5Freq[20][88] =399; Big5Freq[36][68] =398; Big5Freq[3][147] =397; Big5Freq[15][84] =396; Big5Freq[16][32] =395; Big5Freq[16][58] =394; Big5Freq[7][66] =393; Big5Freq[23][107] =392; Big5Freq[9][6] =391; Big5Freq[12][86] =390; Big5Freq[23][112] =389; Big5Freq[37][23] =388; Big5Freq[3][138] =387; Big5Freq[20][68] =386; Big5Freq[15][116] =385; Big5Freq[18][64] =384; Big5Freq[12][139] =383; Big5Freq[11][155] =382; Big5Freq[4][156] =381; Big5Freq[12][84] =380; Big5Freq[18][49] =379; Big5Freq[25][125] =378; Big5Freq[25][147] =377; Big5Freq[15][110] =376; Big5Freq[19][96] =375; Big5Freq[30][152] =374; Big5Freq[6][31] =373; Big5Freq[27][117] =372; Big5Freq[3][10] =371; Big5Freq[6][131] =370; Big5Freq[13][112] =369; Big5Freq[36][156] =368; Big5Freq[4][60] =367; Big5Freq[15][121] =366; Big5Freq[4][112] =365; Big5Freq[30][142] =364; Big5Freq[23][154] =363; Big5Freq[27][101] =362; Big5Freq[9][140] =361; Big5Freq[3][89] =360; Big5Freq[18][148] =359; Big5Freq[4][69] =358; Big5Freq[16][49] =357; Big5Freq[6][117] =356; Big5Freq[36][55] =355; Big5Freq[5][123] =354; Big5Freq[4][126] =353; Big5Freq[4][119] =352; Big5Freq[9][95] =351; Big5Freq[5][24] =350; Big5Freq[16][133] =349; Big5Freq[10][134] =348; Big5Freq[26][59] =347; Big5Freq[6][41] =346; Big5Freq[6][146] =345; Big5Freq[19][24] =344; Big5Freq[5][113] =343; Big5Freq[10][118] =342; Big5Freq[34][151] =341; Big5Freq[9][72] =340; Big5Freq[31][25] =339; Big5Freq[18][126] =338; Big5Freq[18][28] =337; Big5Freq[4][153] =336; Big5Freq[3][84] =335; Big5Freq[21][18] =334; Big5Freq[25][129] =333; Big5Freq[6][107] =332; Big5Freq[12][25] =331; Big5Freq[17][109] =330; Big5Freq[7][76] =329; Big5Freq[15][15] =328; Big5Freq[4][14] =327; Big5Freq[23][88] =326; Big5Freq[18][2] =325; Big5Freq[6][88] =324; Big5Freq[16][84] =323; Big5Freq[12][48] =322; Big5Freq[7][68] =321; Big5Freq[5][50] =320; Big5Freq[13][54] =319; Big5Freq[7][98] =318; Big5Freq[11][6] =317; Big5Freq[9][80] =316; Big5Freq[16][41] =315; Big5Freq[7][43] =314; Big5Freq[28][117] =313; Big5Freq[3][51] =312; Big5Freq[7][3] =311; Big5Freq[20][81] =310; Big5Freq[4][2] =309; Big5Freq[11][16] =308; Big5Freq[10][4] =307; Big5Freq[10][119] =306; Big5Freq[6][142] =305; Big5Freq[18][51] =304; Big5Freq[8][144] =303; Big5Freq[10][65] =302; Big5Freq[11][64] =301; Big5Freq[11][130] =300; Big5Freq[9][92] =299; Big5Freq[18][29] =298; Big5Freq[18][78] =297; Big5Freq[18][151] =296; Big5Freq[33][127] =295; Big5Freq[35][113] =294; Big5Freq[10][155] =293; Big5Freq[3][76] =292; Big5Freq[36][123] =291; Big5Freq[13][143] =290; Big5Freq[5][135] =289; Big5Freq[23][116] =288; Big5Freq[6][101] =287; Big5Freq[14][74] =286; Big5Freq[7][153] =285; Big5Freq[3][101] =284; Big5Freq[9][74] =283; Big5Freq[3][156] =282; Big5Freq[4][147] =281; Big5Freq[9][12] =280; Big5Freq[18][133] =279; Big5Freq[4][0] =278; Big5Freq[7][155] =277; Big5Freq[9][144] =276; Big5Freq[23][49] =275; Big5Freq[5][89] =274; Big5Freq[10][11] =273; Big5Freq[3][110] =272; Big5Freq[3][40] =271; Big5Freq[29][115] =270; Big5Freq[9][100] =269; Big5Freq[21][67] =268; Big5Freq[23][145] =267; Big5Freq[10][47] =266; Big5Freq[4][31] =265; Big5Freq[4][81] =264; Big5Freq[22][62] =263; Big5Freq[4][28] =262; Big5Freq[27][39] =261; Big5Freq[27][54] =260; Big5Freq[32][46] =259; Big5Freq[4][76] =258; Big5Freq[26][15] =257; Big5Freq[12][154] =256; Big5Freq[9][150] =255; Big5Freq[15][17] =254; Big5Freq[5][129] =253; Big5Freq[10][40] =252; Big5Freq[13][37] =251; Big5Freq[31][104] =250; Big5Freq[3][152] =249; Big5Freq[5][22] =248; Big5Freq[8][48] =247; Big5Freq[4][74] =246; Big5Freq[6][17] =245; Big5Freq[30][82] =244; Big5Freq[4][116] =243; Big5Freq[16][42] =242; Big5Freq[5][55] =241; Big5Freq[4][64] =240; Big5Freq[14][19] =239; Big5Freq[35][82] =238; Big5Freq[30][139] =237; Big5Freq[26][152] =236; Big5Freq[32][32] =235; Big5Freq[21][102] =234; Big5Freq[10][131] =233; Big5Freq[9][128] =232; Big5Freq[3][87] =231; Big5Freq[4][51] =230; Big5Freq[10][15] =229; Big5Freq[4][150] =228; Big5Freq[7][4] =227; Big5Freq[7][51] =226; Big5Freq[7][157] =225; Big5Freq[4][146] =224; Big5Freq[4][91] =223; Big5Freq[7][13] =222; Big5Freq[17][116] =221; Big5Freq[23][21] =220; Big5Freq[5][106] =219; Big5Freq[14][100] =218; Big5Freq[10][152] =217; Big5Freq[14][89] =216; Big5Freq[6][138] =215; Big5Freq[12][157] =214; Big5Freq[10][102] =213; Big5Freq[19][94] =212; Big5Freq[7][74] =211; Big5Freq[18][128] =210; Big5Freq[27][111] =209; Big5Freq[11][57] =208; Big5Freq[3][131] =207; Big5Freq[30][23] =206; Big5Freq[30][126] =205; Big5Freq[4][36] =204; Big5Freq[26][124] =203; Big5Freq[4][19] =202; Big5Freq[9][152] =201; #endregion } if (EUC_TWFreq[0] == null) { for(i =0; i < 94; i++) { EUC_TWFreq[i] = newint[94]; } #regionEUC_TWFreq[48][49] =599; EUC_TWFreq[35][65] =598; EUC_TWFreq[41][27] =597; EUC_TWFreq[35][0] =596; EUC_TWFreq[39][19] =595; EUC_TWFreq[35][42] =594; EUC_TWFreq[38][66] =593; EUC_TWFreq[35][8] =592; EUC_TWFreq[35][6] =591; EUC_TWFreq[35][66] =590; EUC_TWFreq[43][14] =589; EUC_TWFreq[69][80] =588; EUC_TWFreq[50][48] =587; EUC_TWFreq[36][71] =586; EUC_TWFreq[37][10] =585; EUC_TWFreq[60][52] =584; EUC_TWFreq[51][21] =583; EUC_TWFreq[40][2] =582; EUC_TWFreq[67][35] =581; EUC_TWFreq[38][78] =580; EUC_TWFreq[49][18] =579; EUC_TWFreq[35][23] =578; EUC_TWFreq[42][83] =577; EUC_TWFreq[79][47] =576; EUC_TWFreq[61][82] =575; EUC_TWFreq[38][7] =574; EUC_TWFreq[35][29] =573; EUC_TWFreq[37][77] =572; EUC_TWFreq[54][67] =571; EUC_TWFreq[38][80] =570; EUC_TWFreq[52][74] =569; EUC_TWFreq[36][37] =568; EUC_TWFreq[74][8] =567; EUC_TWFreq[41][83] =566; EUC_TWFreq[36][75] =565; EUC_TWFreq[49][63] =564; EUC_TWFreq[42][58] =563; EUC_TWFreq[56][33] =562; EUC_TWFreq[37][76] =561; EUC_TWFreq[62][39] =560; EUC_TWFreq[35][21] =559; EUC_TWFreq[70][19] =558; EUC_TWFreq[77][88] =557; EUC_TWFreq[51][14] =556; EUC_TWFreq[36][17] =555; EUC_TWFreq[44][51] =554; EUC_TWFreq[38][72] =553; EUC_TWFreq[74][90] =552; EUC_TWFreq[35][48] =551; EUC_TWFreq[35][69] =550; EUC_TWFreq[66][86] =549; EUC_TWFreq[57][20] =548; EUC_TWFreq[35][53] =547; EUC_TWFreq[36][87] =546; EUC_TWFreq[84][67] =545; EUC_TWFreq[70][56] =544; EUC_TWFreq[71][54] =543; EUC_TWFreq[60][70] =542; EUC_TWFreq[80][1] =541; EUC_TWFreq[39][59] =540; EUC_TWFreq[39][51] =539; EUC_TWFreq[35][44] =538; EUC_TWFreq[48][4] =537; EUC_TWFreq[55][24] =536; EUC_TWFreq[52][4] =535; EUC_TWFreq[54][26] =534; EUC_TWFreq[36][31] =533; EUC_TWFreq[37][22] =532; EUC_TWFreq[37][9] =531; EUC_TWFreq[46][0] =530; EUC_TWFreq[56][46] =529; EUC_TWFreq[47][93] =528; EUC_TWFreq[37][25] =527; EUC_TWFreq[39][8] =526; EUC_TWFreq[46][73] =525; EUC_TWFreq[38][48] =524; EUC_TWFreq[39][83] =523; EUC_TWFreq[60][92] =522; EUC_TWFreq[70][11] =521; EUC_TWFreq[63][84] =520; EUC_TWFreq[38][65] =519; EUC_TWFreq[45][45] =518; EUC_TWFreq[63][49] =517; EUC_TWFreq[63][50] =516; EUC_TWFreq[39][93] =515; EUC_TWFreq[68][20] =514; EUC_TWFreq[44][84] =513; EUC_TWFreq[66][34] =512; EUC_TWFreq[37][58] =511; EUC_TWFreq[39][0] =510; EUC_TWFreq[59][1] =509; EUC_TWFreq[47][8] =508; EUC_TWFreq[61][17] =507; EUC_TWFreq[53][87] =506; EUC_TWFreq[67][26] =505; EUC_TWFreq[43][46] =504; EUC_TWFreq[38][61] =503; EUC_TWFreq[45][9] =502; EUC_TWFreq[66][83] =501; EUC_TWFreq[43][88] =500; EUC_TWFreq[85][20] =499; EUC_TWFreq[57][36] =498; EUC_TWFreq[43][6] =497; EUC_TWFreq[86][77] =496; EUC_TWFreq[42][70] =495; EUC_TWFreq[49][78] =494; EUC_TWFreq[36][40] =493; EUC_TWFreq[42][71] =492; EUC_TWFreq[58][49] =491; EUC_TWFreq[35][20] =490; EUC_TWFreq[76][20] =489; EUC_TWFreq[39][25] =488; EUC_TWFreq[40][34] =487; EUC_TWFreq[39][76] =486; EUC_TWFreq[40][1] =485; EUC_TWFreq[59][0] =484; EUC_TWFreq[39][70] =483; EUC_TWFreq[46][14] =482; EUC_TWFreq[68][77] =481; EUC_TWFreq[38][55] =480; EUC_TWFreq[35][78] =479; EUC_TWFreq[84][44] =478; EUC_TWFreq[36][41] =477; EUC_TWFreq[37][62] =476; EUC_TWFreq[65][67] =475; EUC_TWFreq[69][66] =474; EUC_TWFreq[73][55] =473; EUC_TWFreq[71][49] =472; EUC_TWFreq[66][87] =471; EUC_TWFreq[38][33] =470; EUC_TWFreq[64][61] =469; EUC_TWFreq[35][7] =468; EUC_TWFreq[47][49] =467; EUC_TWFreq[56][14] =466; EUC_TWFreq[36][49] =465; EUC_TWFreq[50][81] =464; EUC_TWFreq[55][76] =463; EUC_TWFreq[35][19] =462; EUC_TWFreq[44][47] =461; EUC_TWFreq[35][15] =460; EUC_TWFreq[82][59] =459; EUC_TWFreq[35][43] =458; EUC_TWFreq[73][0] =457; EUC_TWFreq[57][83] =456; EUC_TWFreq[42][46] =455; EUC_TWFreq[36][0] =454; EUC_TWFreq[70][88] =453; EUC_TWFreq[42][22] =452; EUC_TWFreq[46][58] =451; EUC_TWFreq[36][34] =450; EUC_TWFreq[39][24] =449; EUC_TWFreq[35][55] =448; EUC_TWFreq[44][91] =447; EUC_TWFreq[37][51] =446; EUC_TWFreq[36][19] =445; EUC_TWFreq[69][90] =444; EUC_TWFreq[55][35] =443; EUC_TWFreq[35][54] =442; EUC_TWFreq[49][61] =441; EUC_TWFreq[36][67] =440; EUC_TWFreq[88][34] =439; EUC_TWFreq[35][17] =438; EUC_TWFreq[65][69] =437; EUC_TWFreq[74][89] =436; EUC_TWFreq[37][31] =435; EUC_TWFreq[43][48] =434; EUC_TWFreq[89][27] =433; EUC_TWFreq[42][79] =432; EUC_TWFreq[69][57] =431; EUC_TWFreq[36][13] =430; EUC_TWFreq[35][62] =429; EUC_TWFreq[65][47] =428; EUC_TWFreq[56][8] =427; EUC_TWFreq[38][79] =426; EUC_TWFreq[37][64] =425; EUC_TWFreq[64][64] =424; EUC_TWFreq[38][53] =423; EUC_TWFreq[38][31] =422; EUC_TWFreq[56][81] =421; EUC_TWFreq[36][22] =420; EUC_TWFreq[43][4] =419; EUC_TWFreq[36][90] =418; EUC_TWFreq[38][62] =417; EUC_TWFreq[66][85] =416; EUC_TWFreq[39][1] =415; EUC_TWFreq[59][40] =414; EUC_TWFreq[58][93] =413; EUC_TWFreq[44][43] =412; EUC_TWFreq[39][49] =411; EUC_TWFreq[64][2] =410; EUC_TWFreq[41][35] =409; EUC_TWFreq[60][22] =408; EUC_TWFreq[35][91] =407; EUC_TWFreq[78][1] =406; EUC_TWFreq[36][14] =405; EUC_TWFreq[82][29] =404; EUC_TWFreq[52][86] =403; EUC_TWFreq[40][16] =402; EUC_TWFreq[91][52] =401; EUC_TWFreq[50][75] =400; EUC_TWFreq[64][30] =399; EUC_TWFreq[90][78] =398; EUC_TWFreq[36][52] =397; EUC_TWFreq[55][87] =396; EUC_TWFreq[57][5] =395; EUC_TWFreq[57][31] =394; EUC_TWFreq[42][35] =393; EUC_TWFreq[69][50] =392; EUC_TWFreq[45][8] =391; EUC_TWFreq[50][87] =390; EUC_TWFreq[69][55] =389; EUC_TWFreq[92][3] =388; EUC_TWFreq[36][43] =387; EUC_TWFreq[64][10] =386; EUC_TWFreq[56][25] =385; EUC_TWFreq[60][68] =384; EUC_TWFreq[51][46] =383; EUC_TWFreq[50][0] =382; EUC_TWFreq[38][30] =381; EUC_TWFreq[50][85] =380; EUC_TWFreq[60][54] =379; EUC_TWFreq[73][6] =378; EUC_TWFreq[73][28] =377; EUC_TWFreq[56][19] =376; EUC_TWFreq[62][69] =375; EUC_TWFreq[81][66] =374; EUC_TWFreq[40][32] =373; EUC_TWFreq[76][31] =372; EUC_TWFreq[35][10] =371; EUC_TWFreq[41][37] =370; EUC_TWFreq[52][82] =369; EUC_TWFreq[91][72] =368; EUC_TWFreq[37][29] =367; EUC_TWFreq[56][30] =366; EUC_TWFreq[37][80] =365; EUC_TWFreq[81][56] =364; EUC_TWFreq[70][3] =363; EUC_TWFreq[76][15] =362; EUC_TWFreq[46][47] =361; EUC_TWFreq[35][88] =360; EUC_TWFreq[61][58] =359; EUC_TWFreq[37][37] =358; EUC_TWFreq[57][22] =357; EUC_TWFreq[41][23] =356; EUC_TWFreq[90][66] =355; EUC_TWFreq[39][60] =354; EUC_TWFreq[38][0] =353; EUC_TWFreq[37][87] =352; EUC_TWFreq[46][2] =351; EUC_TWFreq[38][56] =350; EUC_TWFreq[58][11] =349; EUC_TWFreq[48][10] =348; EUC_TWFreq[74][4] =347; EUC_TWFreq[40][42] =346; EUC_TWFreq[41][52] =345; EUC_TWFreq[61][92] =344; EUC_TWFreq[39][50] =343; EUC_TWFreq[47][88] =342; EUC_TWFreq[88][36] =341; EUC_TWFreq[45][73] =340; EUC_TWFreq[82][3] =339; EUC_TWFreq[61][36] =338; EUC_TWFreq[60][33] =337; EUC_TWFreq[38][27] =336; EUC_TWFreq[35][83] =335; EUC_TWFreq[65][24] =334; EUC_TWFreq[73][10] =333; EUC_TWFreq[41][13] =332; EUC_TWFreq[50][27] =331; EUC_TWFreq[59][50] =330; EUC_TWFreq[42][45] =329; EUC_TWFreq[55][19] =328; EUC_TWFreq[36][77] =327; EUC_TWFreq[69][31] =326; EUC_TWFreq[60][7] =325; EUC_TWFreq[40][88] =324; EUC_TWFreq[57][56] =323; EUC_TWFreq[50][50] =322; EUC_TWFreq[42][37] =321; EUC_TWFreq[38][82] =320; EUC_TWFreq[52][25] =319; EUC_TWFreq[42][67] =318; EUC_TWFreq[48][40] =317; EUC_TWFreq[45][81] =316; EUC_TWFreq[57][14] =315; EUC_TWFreq[42][13] =314; EUC_TWFreq[78][0] =313; EUC_TWFreq[35][51] =312; EUC_TWFreq[41][67] =311; EUC_TWFreq[64][23] =310; EUC_TWFreq[36][65] =309; EUC_TWFreq[48][50] =308; EUC_TWFreq[46][69] =307; EUC_TWFreq[47][89] =306; EUC_TWFreq[41][48] =305; EUC_TWFreq[60][56] =304; EUC_TWFreq[44][82] =303; EUC_TWFreq[47][35] =302; EUC_TWFreq[49][3] =301; EUC_TWFreq[49][69] =300; EUC_TWFreq[45][93] =299; EUC_TWFreq[60][34] =298; EUC_TWFreq[60][82] =297; EUC_TWFreq[61][61] =296; EUC_TWFreq[86][42] =295; EUC_TWFreq[89][60] =294; EUC_TWFreq[48][31] =293; EUC_TWFreq[35][75] =292; EUC_TWFreq[91][39] =291; EUC_TWFreq[53][19] =290; EUC_TWFreq[39][72] =289; EUC_TWFreq[69][59] =288; EUC_TWFreq[41][7] =287; EUC_TWFreq[54][13] =286; EUC_TWFreq[43][28] =285; EUC_TWFreq[36][6] =284; EUC_TWFreq[45][75] =283; EUC_TWFreq[36][61] =282; EUC_TWFreq[38][21] =281; EUC_TWFreq[45][14] =280; EUC_TWFreq[61][43] =279; EUC_TWFreq[36][63] =278; EUC_TWFreq[43][30] =277; EUC_TWFreq[46][51] =276; EUC_TWFreq[68][87] =275; EUC_TWFreq[39][26] =274; EUC_TWFreq[46][76] =273; EUC_TWFreq[36][15] =272; EUC_TWFreq[35][40] =271; EUC_TWFreq[79][60] =270; EUC_TWFreq[46][7] =269; EUC_TWFreq[65][72] =268; EUC_TWFreq[69][88] =267; EUC_TWFreq[47][18] =266; EUC_TWFreq[37][0] =265; EUC_TWFreq[37][49] =264; EUC_TWFreq[67][37] =263; EUC_TWFreq[36][91] =262; EUC_TWFreq[75][48] =261; EUC_TWFreq[75][63] =260; EUC_TWFreq[83][87] =259; EUC_TWFreq[37][44] =258; EUC_TWFreq[73][54] =257; EUC_TWFreq[51][61] =256; EUC_TWFreq[46][57] =255; EUC_TWFreq[55][21] =254; EUC_TWFreq[39][66] =253; EUC_TWFreq[47][11] =252; EUC_TWFreq[52][8] =251; EUC_TWFreq[82][81] =250; EUC_TWFreq[36][57] =249; EUC_TWFreq[38][54] =248; EUC_TWFreq[43][81] =247; EUC_TWFreq[37][42] =246; EUC_TWFreq[40][18] =245; EUC_TWFreq[80][90] =244; EUC_TWFreq[37][84] =243; EUC_TWFreq[57][15] =242; EUC_TWFreq[38][87] =241; EUC_TWFreq[37][32] =240; EUC_TWFreq[53][53] =239; EUC_TWFreq[89][29] =238; EUC_TWFreq[81][53] =237; EUC_TWFreq[75][3] =236; EUC_TWFreq[83][73] =235; EUC_TWFreq[66][13] =234; EUC_TWFreq[48][7] =233; EUC_TWFreq[46][35] =232; EUC_TWFreq[35][86] =231; EUC_TWFreq[37][20] =230; EUC_TWFreq[46][80] =229; EUC_TWFreq[38][24] =228; EUC_TWFreq[41][68] =227; EUC_TWFreq[42][21] =226; EUC_TWFreq[43][32] =225; EUC_TWFreq[38][20] =224; EUC_TWFreq[37][59] =223; EUC_TWFreq[41][77] =222; EUC_TWFreq[59][57] =221; EUC_TWFreq[68][59] =220; EUC_TWFreq[39][43] =219; EUC_TWFreq[54][39] =218; EUC_TWFreq[48][28] =217; EUC_TWFreq[54][28] =216; EUC_TWFreq[41][44] =215; EUC_TWFreq[51][64] =214; EUC_TWFreq[47][72] =213; EUC_TWFreq[62][67] =212; EUC_TWFreq[42][43] =211; EUC_TWFreq[61][38] =210; EUC_TWFreq[76][25] =209; EUC_TWFreq[48][91] =208; EUC_TWFreq[36][36] =207; EUC_TWFreq[80][32] =206; EUC_TWFreq[81][40] =205; EUC_TWFreq[37][5] =204; EUC_TWFreq[74][69] =203; EUC_TWFreq[36][82] =202; EUC_TWFreq[46][59] =201; #endregion } } #endregion #region ToByteArray..... /// <summary> /// 将此实例中的指定 <see cref="sbyte"/> 字符数组转换到 <see cref="byte"/> 字符数组。 /// </summary> /// <param name="sbyteArray">要转换的 <see cref="sbyte"/> 字符数组</param> /// <returns>返回转换后的 <see cref="byte"/> 字符数组</returns> public static byte[]ToByteArray(sbyte[]sbyteArray) { byte[]byteArray = newbyte[sbyteArray.Length]; for (intindex = 0; index < sbyteArray.Length; index++) byteArray[index] = (byte)sbyteArray[index]; return byteArray; } /// <summary> /// 将此实例中的指定字符串转换到 <see cref="byte"/> 字符数组。 /// </summary> /// <param name="sourceString">要转换的字符串</param> /// <returns>返回转换后的 <see cref="byte"/> 字符数组</returns> public static byte[] ToByteArray(stringsourceString) { byte[]byteArray = newbyte[sourceString.Length]; for (intindex = 0; index < sourceString.Length; index++) byteArray[index] = (byte)sourceString[index]; return byteArray; } /// <summary> /// 将此实例中的指定 <see cref="object"/> 数组转换到 <see cref="byte"/> 字符数组。 /// </summary> /// <param name="tempObjectArray">要转换的 <see cref="object"/> 字符数组</param> /// <returns>返回转换后的 <see cref="byte"/> 字符数组</returns> public static byte[]ToByteArray(object[]tempObjectArray) { byte[]byteArray = newbyte[tempObjectArray.Length]; for (intindex = 0; index < tempObjectArray.Length; index++) byteArray[index] = (byte)tempObjectArray[index]; return byteArray; } #endregion #region ToSByteArray..... /// <summary> /// 将此实例中的指定 <see cref="byte"/> 字符数组转换到 <see cref="sbyte"/> 字符数组。 /// </summary> /// <param name="byteArray">要转换的 <see cref="byte"/> 字符数组</param> /// <returns>返回转换后的 <see cref="sbyte"/> 字符数组</returns> public static sbyte[]ToSByteArray(byte[]byteArray) { sbyte[]sbyteArray = newsbyte[byteArray.Length]; for (intindex = 0; index < byteArray.Length; index++) sbyteArray[index] = (sbyte)byteArray[index]; return sbyteArray; } #endregion #region ReadInput..... /// <summary>从流读取字节序列,并将此流中的位置提升读取的字节数.</summary> /// <param name="sourceStream">要读取的流.</param> /// <param name="target">字节数组。此方法返回时,该缓冲区包含指定的字符数组,该数组的 start 和 (start + count-1) 之间的值由从当前源中读取的字节替换。</param> /// <param name="start">buffer 中的从零开始的字节偏移量,从此处开始存储从当前流中读取的数据。.</param> /// <param name="count">要从当前流中最多读取的字节数。</param> /// <returns>读入缓冲区中的总字节数。如果当前可用的字节数没有请求的字节数那么多,则总字节数可能小于请求的字节数,或者如果已到达流的末尾,则为零 (0)。</returns> /// <exception cref="ArgumentException">start 与 count 的和大于缓冲区长度。</exception> /// <exception cref="ArgumentNullException">target 为空引用(Visual Basic 中为 Nothing)。</exception> /// <exception cref="ArgumentOutOfRangeException">offset 或 count 为负。</exception> /// <exception cref="IOException">发生 I/O 错误。</exception> /// <exception cref="NotSupportedException">流不支持读取。</exception> /// <exception cref="ObjectDisposedException">在流关闭后调用方法。</exception> public static int ReadInput(StreamsourceStream, ref sbyte[]target, intstart, int count) { // Returns 0 bytes if not enough space in target if (target.Length== 0) return 0; byte[] receiver= new byte[target.Length]; int bytesRead = sourceStream.Read(receiver, start, count); // Returns -1 if EOF if (bytesRead== 0) return -1; for (inti = start; i < start + bytesRead; i++) target[i] = (sbyte)receiver[i]; return bytesRead; } /// <summary>从字符系列读取字节序列,并将此字符系列中的位置提升读取的字节数。</summary> /// <param name="sourceTextReader">要读取的流。</param> /// <param name="target">字节数组。此方法返回时,该缓冲区包含指定的字符数组,该数组的 start 和 (start + count-1) 之间的值由从当前源中读取的字节替换。</param> /// <param name="start">buffer 中的从零开始的字节偏移量,从此处开始存储从当前流中读取的数据。.</param> /// <param name="count">要从当前流中最多读取的字节数。</param> /// <returns>读入缓冲区中的总字节数。如果当前可用的字节数没有请求的字节数那么多,则总字节数可能小于请求的字节数,或者如果已到达流的末尾,则为零 (0)。</returns> /// <exception cref="ArgumentException">start 与 count 的和大于缓冲区长度。</exception> /// <exception cref="ArgumentNullException">target 为空引用(Visual Basic 中为 Nothing)。</exception> /// <exception cref="ArgumentOutOfRangeException">offset 或 count 为负。</exception> /// <exception cref="IOException">发生 I/O 错误。</exception> /// <exception cref="NotSupportedException">流不支持读取。</exception> /// <exception cref="ObjectDisposedException">在流关闭后调用方法。</exception> public static int ReadInput(TextReadersourceTextReader, ref sbyte[]target, intstart, int count) { // Returns 0 bytes if not enough space in target if (target.Length== 0)return 0; char[] charArray= new char[target.Length]; int bytesRead = sourceTextReader.Read(charArray, start, count); // Returns -1 if EOF if (bytesRead== 0)return -1; for (intindex = start; index < start + bytesRead; index++) target[index] = (sbyte)charArray[index]; return bytesRead; } #endregion #region FileLength..... /// <summary> /// 检测当前文件的大小 /// </summary> /// <param name="file">被检测的文件</param> /// <returns>当前文件的大小。</returns> public static longFileLength(FileInfofile) { if (Directory.Exists(file.FullName)) return 0; else return file.Length; } #endregion #region Identity..... /// <summary> /// This method returns the literal value received /// </summary> /// <param name="literal">The literal to return</param> /// <returns>The received value</returns> public static long Identity(longliteral) { returnliteral; } /// <summary> /// This method returns the literal value received /// </summary> /// <param name="literal">The literal to return</param> /// <returns>The received value</returns> public static ulong Identity(ulongliteral) { returnliteral; } /// <summary> /// This method returns the literal value received /// </summary> /// <param name="literal">The literal to return</param> /// <returns>The received value</returns> public static float Identity(floatliteral) { returnliteral; } /// <summary> /// This method returns the literal value received /// </summary> /// <param name="literal">The literal to return</param> /// <returns>The received value</returns> public static double Identity(doubleliteral) { returnliteral; } #endregion #endregion } #endregion}namespaceTest{ using System; using Microshaoft; class AppTest { [STAThread] public static void Main(string[]argc) { IdentifyEncoding sinodetector; string result = null; argc = new string[1]; //argc[0] = "c:\\chinesedata\\codeconvert\\voaunit.txt"; argc[0] ="http://china5.nikkeibp.co.jp/china/news/com/200307/pr_com200307170131.html"; sinodetector = newIdentifyEncoding(); if (argc[0].StartsWith("http://") == true) { try { result = sinodetector.GetEncodingName(newUri(argc[0])); } catch(Exception e) { Console.Error.WriteLine("Bad URL "+ e.ToString()); } } else { //result = sinodetector.detectEncoding(new File(argc[0])); } Console.Out.WriteLine(result); } }}
- 字节编码类型判断<转>
- (转)java 判断字符串什么编码类型
- 判断文件编码类型
- 判断字符串编码类型
- 判断字符串编码类型
- JAVA判断文件编码类型
- JAVA判断文件编码类型
- JAVA判断文件编码类型
- 【java】判断字符串编码类型
- java 判断字符串编码类型
- 宽字节编码类型的XSS
- 判断int类型所占字节数
- 判断字符串的编码类型(GBK / UTF8)
- Java判断文件的编码类型。
- 判断字符串的编码类型(GBK / UTF8)
- java 判断字符串什么编码类型
- java 判断字符串什么编码类型
- java 判断字符串什么编码类型
- Ruby rails 页面跳转(render和redirect_to)
- 第15条:使可变性最小化(创建不可改变类)
- linux中的ftok函数
- windows 启动函数的作用
- Java线程(二):线程同步synchronized和volatile
- 字节编码类型判断<转>
- TCP/IP层次
- Ubuntu使用指南
- 随机数生成器
- C语言关键字 - auto和register
- 解析Qt自带的Style示例
- AD用户帐户属性对照表
- C++类型转换日记
- 一个简单的操作活动目录的类(ADHelper)