📄 mimeutility.java
字号:
}
catch(IllegalArgumentException _ex)
{
throw new UnsupportedEncodingException();
}
}
private static String decodeInnerWords(String s)
throws UnsupportedEncodingException
{
int i = 0;
StringBuffer stringbuffer = new StringBuffer();
int j;
while((j = s.indexOf("=?", i)) >= 0)
{
stringbuffer.append(s.substring(i, j));
int k = s.indexOf("?=", j);
if(k < 0)
break;
String s1 = s.substring(j, k + 2);
try
{
s1 = decodeWord(s1);
}
catch(ParseException _ex) { }
stringbuffer.append(s1);
i = k + 2;
}
if(i == 0)
return s;
if(i < s.length())
stringbuffer.append(s.substring(i));
return stringbuffer.toString();
}
public static String quote(String s, String s1)
{
int i = s.length();
boolean flag = false;
for(int j = 0; j < i; j++)
{
char c = s.charAt(j);
if(c == '"' || c == '\\' || c == '\r' || c == '\n')
{
StringBuffer stringbuffer1 = new StringBuffer(i + 3);
stringbuffer1.append('"');
stringbuffer1.append(s.substring(0, j));
int k = 0;
for(int l = j; l < i; l++)
{
char c1 = s.charAt(l);
if((c1 == '"' || c1 == '\\' || c1 == '\r' || c1 == '\n') && (c1 != '\n' || k != 13))
stringbuffer1.append('\\');
stringbuffer1.append(c1);
k = c1;
}
stringbuffer1.append('"');
return stringbuffer1.toString();
}
if(c < ' ' || c >= '\177' || s1.indexOf(c) >= 0)
flag = true;
}
if(flag)
{
StringBuffer stringbuffer = new StringBuffer(i + 2);
stringbuffer.append('"').append(s).append('"');
return stringbuffer.toString();
} else
{
return s;
}
}
public static String javaCharset(String s)
{
if(mime2java == null || s == null)
return s;
String s1 = (String)mime2java.get(s.toLowerCase());
if(s1 == null)
return s;
else
return s1;
}
public static String mimeCharset(String s)
{
if(java2mime == null || s == null)
return s;
String s1 = (String)java2mime.get(s.toLowerCase());
if(s1 == null)
return s;
else
return s1;
}
public static String getDefaultJavaCharset()
{
if(defaultJavaCharset == null)
try
{
defaultJavaCharset = System.getProperty("file.encoding", "8859_1");
}
catch(SecurityException _ex)
{
if(defaultJavaCharset == null)
defaultJavaCharset = "8859_1";
}
return defaultJavaCharset;
}
static String getDefaultMIMECharset()
{
if(defaultMIMECharset == null)
try
{
defaultMIMECharset = System.getProperty("mail.mime.charset");
}
catch(SecurityException _ex) { }
if(defaultMIMECharset == null)
defaultMIMECharset = mimeCharset(getDefaultJavaCharset());
return defaultMIMECharset;
}
private static void loadMappings(LineInputStream lineinputstream, Hashtable hashtable)
{
do
{
String s;
try
{
s = lineinputstream.readLine();
}
catch(IOException _ex)
{
return;
}
if(s == null || s.startsWith("--") && s.endsWith("--"))
break;
if(s.trim().length() != 0 && !s.startsWith("#"))
{
StringTokenizer stringtokenizer = new StringTokenizer(s, " \t");
try
{
String s1 = stringtokenizer.nextToken();
String s2 = stringtokenizer.nextToken();
hashtable.put(s1.toLowerCase(), s2);
}
catch(NoSuchElementException _ex) { }
}
} while(true);
}
static int checkAscii(String s)
{
int i = 0;
int j = 0;
int k = s.length();
for(int l = 0; l < k; l++)
if(nonascii(s.charAt(l)))
j++;
else
i++;
if(j == 0)
return 1;
return i <= j ? 3 : 2;
}
static int checkAscii(byte abyte0[])
{
int i = 0;
int j = 0;
for(int k = 0; k < abyte0.length; k++)
if(nonascii(abyte0[k] & 0xff))
j++;
else
i++;
if(j == 0)
return 1;
return i <= j ? 3 : 2;
}
static int checkAscii(InputStream inputstream, int i, boolean flag)
{
int j = 0;
int k = 0;
int i1 = 4096;
int j1 = 0;
boolean flag1 = false;
boolean flag2 = false;
boolean flag3 = encodeEolStrict && flag;
byte abyte0[] = null;
if(i != 0)
{
i1 = i != -1 ? Math.min(i, 4096) : 4096;
abyte0 = new byte[i1];
}
while(i != 0)
{
int l;
try
{
if((l = inputstream.read(abyte0, 0, i1)) == -1)
break;
int k1 = 0;
for(int l1 = 0; l1 < l; l1++)
{
int i2 = abyte0[l1] & 0xff;
if(flag3 && (k1 == 13 && i2 != 10 || k1 != 13 && i2 == 10))
flag2 = true;
if(i2 == 13 || i2 == 10)
j1 = 0;
else
if(++j1 > 998)
flag1 = true;
if(nonascii(i2))
{
if(flag)
return 3;
k++;
} else
{
j++;
}
k1 = i2;
}
}
catch(IOException _ex)
{
break;
}
if(i != -1)
i -= l;
}
if(i == 0 && flag)
return 3;
if(k == 0)
{
if(flag2)
return 3;
return !flag1 ? 1 : 2;
}
return j <= k ? 3 : 2;
}
static boolean nonascii(int i)
{
return i >= 127 || i < 32 && i != 13 && i != 10 && i != 9;
}
/*
static Class class$(String s)
{
try
{
return Class.forName(s);
}
catch(ClassNotFoundException classnotfoundexception)
{
throw new NoClassDefFoundError(classnotfoundexception.getMessage());
}
}
static
{
try
{
String s = System.getProperty("mail.mime.decodetext.strict");
decodeStrict = s == null || !s.equalsIgnoreCase("false");
s = System.getProperty("mail.mime.encodeeol.strict");
encodeEolStrict = s != null && s.equalsIgnoreCase("true");
}
catch(SecurityException _ex) { }
java2mime = new Hashtable(40);
mime2java = new Hashtable(10);
try
{
Object obj = (class$javax$mail$internet$MimeUtility == null ? (class$javax$mail$internet$MimeUtility = class$("javax.mail.internet.MimeUtility")) : class$javax$mail$internet$MimeUtility).getResourceAsStream("/META-INF/javamail.charset.map");
if(obj != null)
{
obj = new LineInputStream(((InputStream) (obj)));
loadMappings((LineInputStream)obj, java2mime);
loadMappings((LineInputStream)obj, mime2java);
}
}
catch(Exception _ex) { }
if(java2mime.isEmpty())
{
java2mime.put("8859_1", "ISO-8859-1");
java2mime.put("iso8859_1", "ISO-8859-1");
java2mime.put("ISO8859-1", "ISO-8859-1");
java2mime.put("8859_2", "ISO-8859-2");
java2mime.put("iso8859_2", "ISO-8859-2");
java2mime.put("ISO8859-2", "ISO-8859-2");
java2mime.put("8859_3", "ISO-8859-3");
java2mime.put("iso8859_3", "ISO-8859-3");
java2mime.put("ISO8859-3", "ISO-8859-3");
java2mime.put("8859_4", "ISO-8859-4");
java2mime.put("iso8859_4", "ISO-8859-4");
java2mime.put("ISO8859-4", "ISO-8859-4");
java2mime.put("8859_5", "ISO-8859-5");
java2mime.put("iso8859_5", "ISO-8859-5");
java2mime.put("ISO8859-5", "ISO-8859-5");
java2mime.put("8859_6", "ISO-8859-6");
java2mime.put("iso8859_6", "ISO-8859-6");
java2mime.put("ISO8859-6", "ISO-8859-6");
java2mime.put("8859_7", "ISO-8859-7");
java2mime.put("iso8859_7", "ISO-8859-7");
java2mime.put("ISO8859-7", "ISO-8859-7");
java2mime.put("8859_8", "ISO-8859-8");
java2mime.put("iso8859_8", "ISO-8859-8");
java2mime.put("ISO8859-8", "ISO-8859-8");
java2mime.put("8859_9", "ISO-8859-9");
java2mime.put("iso8859_9", "ISO-8859-9");
java2mime.put("ISO8859-9", "ISO-8859-9");
java2mime.put("SJIS", "Shift_JIS");
java2mime.put("MS932", "Shift_JIS");
java2mime.put("JIS", "ISO-2022-JP");
java2mime.put("ISO2022JP", "ISO-2022-JP");
java2mime.put("EUC_JP", "euc-jp");
java2mime.put("KOI8_R", "koi8-r");
java2mime.put("EUC_CN", "euc-cn");
java2mime.put("EUC_TW", "euc-tw");
java2mime.put("EUC_KR", "euc-kr");
}
if(mime2java.isEmpty())
{
mime2java.put("iso-2022-cn", "ISO2022CN");
mime2java.put("iso-2022-kr", "ISO2022KR");
mime2java.put("utf-8", "UTF8");
mime2java.put("utf8", "UTF8");
mime2java.put("ja_jp.iso2022-7", "ISO2022JP");
mime2java.put("ja_jp.eucjp", "EUCJIS");
mime2java.put("euc-kr", "KSC5601");
mime2java.put("euckr", "KSC5601");
mime2java.put("us-ascii", "ISO-8859-1");
mime2java.put("x-us-ascii", "ISO-8859-1");
}
}
*/
/**
* file ext name to ContentType
*/
public static String ext2ct(String fileExt)
{
String ext = fileExt.toLowerCase();
if ("gif".equals(ext))
return "image/gif";
if ("jpg".equals(ext))
return "image/jpeg";
if ("png".equals(ext))
return "image/png";
if ("tiff".equals(ext))
return "image/tiff";
if ("txt".equals(ext))
return "text/plain";
if ("wav".equals(ext))
return "audio/wav";
if ("mid".equals(ext))
return "audio/midi";
if ("amr".equals(ext))
return "audio/amr";
return "";
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -