miceZipper

getcodepage

Jan 27th, 2013
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.46 KB | None | 0 0
  1. private String[] getCodepage(String strText) {
  2.         String numChars = "1234567890";
  3.         String engChars = "qwertyuioplkjhgfdsazxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM";
  4.         String rusChars = "йцукенгшщзхъэждлорпавыфячсмитьбюёЙЦУКЕНГШЩЗХЪЭЖДЛОРПАВЫФЯЧСМИТЬБЮЁ";
  5.  
  6.         String char1 = "";
  7.         int[] rates = new int[9];
  8.  
  9.         for (int i = 0; i < strText.length(); i++) {
  10.             // cp1251 -> cp1251
  11.             char1 = new String(strText.substring(i, i + 1).getBytes(
  12.                     Charset.forName("cp1251")), Charset.forName("cp1251"));
  13.             if (engChars.contains(char1) | rusChars.contains(char1)
  14.                     | numChars.contains(char1)) {
  15.                 rates[0]++;
  16.             }
  17.             // cp1252 -> cp1252
  18.             char1 = new String(strText.substring(i, i + 1).getBytes(
  19.                     Charset.forName("cp1252")), Charset.forName("cp1252"));
  20.             if (engChars.contains(char1) | rusChars.contains(char1)
  21.                     | numChars.contains(char1)) {
  22.                 rates[1]++;
  23.             }
  24.             // utf8 -> utf8
  25.             char1 = new String(strText.substring(i, i + 1).getBytes(
  26.                     Charset.forName("UTF-8")), Charset.forName("UTF-8"));
  27.             if (engChars.contains(char1) | rusChars.contains(char1)
  28.                     | numChars.contains(char1)) {
  29.                 rates[2]++;
  30.             }
  31.             // cp1251 -> cp1252
  32.             char1 = new String(strText.substring(i, i + 1).getBytes(
  33.                     Charset.forName("cp1251")), Charset.forName("cp1252"));
  34.             if (engChars.contains(char1) | rusChars.contains(char1)
  35.                     | numChars.contains(char1)) {
  36.                 rates[3]++;
  37.             }
  38.             // cp1252 -> cp1251
  39.             char1 = new String(strText.substring(i, i + 1).getBytes(
  40.                     Charset.forName("cp1252")), Charset.forName("cp1251"));
  41.             if (engChars.contains(char1) | rusChars.contains(char1)
  42.                     | numChars.contains(char1)) {
  43.                 rates[4]++;
  44.             }
  45.             // cp1251 -> utf8
  46.             char1 = new String(strText.substring(i, i + 1).getBytes(
  47.                     Charset.forName("cp1251")), Charset.forName("UTF-8"));
  48.             if (engChars.contains(char1) | rusChars.contains(char1)
  49.                     | numChars.contains(char1)) {
  50.                 rates[5]++;
  51.             }
  52.             // utf8 -> cp1251
  53.             char1 = new String(strText.substring(i, i + 1).getBytes(
  54.                     Charset.forName("UTF-8")), Charset.forName("cp1251"));
  55.             if (engChars.contains(char1) | rusChars.contains(char1)
  56.                     | numChars.contains(char1)) {
  57.                 rates[6]++;
  58.             }
  59.             // cp1252 -> utf8
  60.             char1 = new String(strText.substring(i, i + 1).getBytes(
  61.                     Charset.forName("cp1252")), Charset.forName("UTF-8"));
  62.             if (engChars.contains(char1) | rusChars.contains(char1)
  63.                     | numChars.contains(char1)) {
  64.                 rates[7]++;
  65.             }
  66.             // utf8 -> cp1252
  67.             char1 = new String(strText.substring(i, i + 1).getBytes(
  68.                     Charset.forName("UTF-8")), Charset.forName("cp1252"));
  69.             if (engChars.contains(char1) | rusChars.contains(char1)
  70.                     | numChars.contains(char1)) {
  71.                 rates[8]++;
  72.             }
  73.  
  74.             int indexMax = 0;
  75.             for (i = 0; i < 9; i++) {
  76.                 if (rates[i] > rates[indexMax]) {
  77.                     indexMax = i;
  78.                 }
  79.             }
  80.  
  81.             switch (indexMax) {
  82.             case 0:
  83.                 return new String[] { "cp1251", "cp1251" };
  84.             case 1:
  85.                 return new String[] { "cp1252", "cp1252" };
  86.             case 2:
  87.                 return new String[] { "utf8", "utf8" };
  88.             case 3:
  89.                 return new String[] { "cp1251", "cp1252" };
  90.             case 4:
  91.                 return new String[] { "cp1252", "cp1251" };
  92.             case 5:
  93.                 return new String[] { "cp1251", "utf8" };
  94.             case 6:
  95.                 return new String[] { "utf8", "cp1251" };
  96.             case 7:
  97.                 return new String[] { "cp1252", "utf8" };
  98.             case 8:
  99.                 return new String[] { "utf8", "cp1252" };
  100.             }
  101.         }
  102.  
  103.         return new String[] { "utf8", "utf8" };
  104.     }
Advertisement
Add Comment
Please, Sign In to add comment