package org.objectstyle.wolips.baseforplugins.util; import java.util.Arrays; import java.util.List; public class CharSetUtils { public static final String ENCODING_UTF8 = "UTF-8"; public static final String ENCODING_UTF16 = "UTF-16"; public static final String ENCODING_MACROMAN = "MacRoman"; public static final String ENCODING_MACSYMBOL = "MacSymbol"; public static final String ENCODING_US_ASCII = "US-ASCII"; public static final String ENCODING_JAPANESE_EUC = "EUC_JP"; public static final String ENCODING_JAPANESE_ISO2022 = "ISO2022JP"; public static final String ENCODING_JAPANESE_SHIFTJIS = "SJIS"; public static final String ENCODING_ISO_LATIN1 = "ISO-8859-1"; public static final String ENCODING_ISO_LATIN2 = "ISO-8859-2"; public static final String ENCODING_UNICODE = "Unicode"; public static final String ENCODING_WINDOWS_CP1250 = "Cp1250"; public static final String ENCODING_WINDOWS_CP1251 = "Cp1251"; public static final String ENCODING_WINDOWS_CP1252 = "Cp1252"; public static final String ENCODING_WINDOWS_CP1253 = "Cp1253"; public static final String ENCODING_WINDOWS_CP1254 = "Cp1254"; private CharSetUtils() { /* Should not be instantiated */ } /** * <ul> * <li>UTF-8 * <li>UTF-16 * <li>US-ASCII * <li>ISO-8859-1 * <li>ISO-8859-2 * <li>EUC_JP * <li>ISO2022JP * <li>SJIS * </ul> * @return the list of default suggested encoding names. UTF-8 is always preferred. */ public static List<String> defaultCharsetEncodingNames() { return Arrays.asList( ENCODING_UTF8, ENCODING_UTF16, ENCODING_US_ASCII, ENCODING_ISO_LATIN1, ENCODING_ISO_LATIN2, ENCODING_JAPANESE_EUC, ENCODING_JAPANESE_ISO2022, ENCODING_JAPANESE_SHIFTJIS); } public static String encodingNameFromObjectiveC(final String encodingName) { if (encodingName.equals("NSISOLatin1StringEncoding")) return ENCODING_ISO_LATIN1; if (encodingName.equals("NSMacOSRomanStringEncoding")) return ENCODING_MACROMAN; if (encodingName.equals("NSASCIIStringEncoding")) return ENCODING_US_ASCII; if (encodingName.equals("NSNEXTSTEPStringEncoding")) return ENCODING_ISO_LATIN1; if (encodingName.equals("NSJapaneseEUCStringEncoding")) return ENCODING_JAPANESE_EUC; if (encodingName.equals("NSUTF8StringEncoding")) return ENCODING_UTF8; if (encodingName.equals("NSUTF16StringEncoding")) return ENCODING_UTF16; if (encodingName.equals("NSSymbolStringEncoding")) return ENCODING_MACSYMBOL; if (encodingName.equals("NSNonLossyASCIIStringEncoding")) return ENCODING_US_ASCII; if (encodingName.equals("NSShiftJISStringEncoding")) return ENCODING_JAPANESE_SHIFTJIS; if (encodingName.equals("NSISOLatin2StringEncoding")) return ENCODING_ISO_LATIN2; if (encodingName.equals("NSUnicodeStringEncoding")) return ENCODING_UNICODE; if (encodingName.equals("NSWindowsCP1251StringEncoding")) return ENCODING_WINDOWS_CP1251; if (encodingName.equals("NSWindowsCP1252StringEncoding")) return ENCODING_WINDOWS_CP1252; if (encodingName.equals("NSWindowsCP1253StringEncoding")) return ENCODING_WINDOWS_CP1253; if (encodingName.equals("NSWindowsCP1254StringEncoding")) return ENCODING_WINDOWS_CP1254; if (encodingName.equals("NSWindowsCP1250StringEncoding")) return ENCODING_WINDOWS_CP1250; if (encodingName.equals("NSISO2022JPStringEncoding")) return ENCODING_JAPANESE_ISO2022; return encodingName; } }