⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 charsetmapping.java

📁 mysql的jdbc驱动
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
			INDEX_TO_CHARSET[70] = getJavaEncodingForMysqlEncoding("greek",					null);			INDEX_TO_CHARSET[71] = getJavaEncodingForMysqlEncoding("hebrew",					null);			INDEX_TO_CHARSET[72] = getJavaEncodingForMysqlEncoding("hp8", null);			INDEX_TO_CHARSET[73] = getJavaEncodingForMysqlEncoding("keybcs2",					null);			INDEX_TO_CHARSET[74] = getJavaEncodingForMysqlEncoding("koi8r",					null);			INDEX_TO_CHARSET[75] = getJavaEncodingForMysqlEncoding("koi8ukr",					null);			INDEX_TO_CHARSET[77] = getJavaEncodingForMysqlEncoding("latin2",					null);			INDEX_TO_CHARSET[78] = getJavaEncodingForMysqlEncoding("latin5",					null);			INDEX_TO_CHARSET[79] = getJavaEncodingForMysqlEncoding("latin7",					null);			INDEX_TO_CHARSET[80] = getJavaEncodingForMysqlEncoding("cp850",					null);			INDEX_TO_CHARSET[81] = getJavaEncodingForMysqlEncoding("cp852",					null);			INDEX_TO_CHARSET[82] = getJavaEncodingForMysqlEncoding("swe7", null);			INDEX_TO_CHARSET[83] = getJavaEncodingForMysqlEncoding("utf8", null);			INDEX_TO_CHARSET[84] = getJavaEncodingForMysqlEncoding("big5", null);			INDEX_TO_CHARSET[85] = getJavaEncodingForMysqlEncoding("euckr",					null);			INDEX_TO_CHARSET[86] = getJavaEncodingForMysqlEncoding("gb2312",					null);			INDEX_TO_CHARSET[87] = getJavaEncodingForMysqlEncoding("gbk", null);			INDEX_TO_CHARSET[88] = getJavaEncodingForMysqlEncoding("sjis", null);			INDEX_TO_CHARSET[89] = getJavaEncodingForMysqlEncoding("tis620",					null);			INDEX_TO_CHARSET[90] = getJavaEncodingForMysqlEncoding("ucs2", null);			INDEX_TO_CHARSET[91] = getJavaEncodingForMysqlEncoding("ujis", null);			INDEX_TO_CHARSET[92] = getJavaEncodingForMysqlEncoding("geostd8",					null);			INDEX_TO_CHARSET[93] = getJavaEncodingForMysqlEncoding("geostd8",					null);			INDEX_TO_CHARSET[94] = getJavaEncodingForMysqlEncoding("latin1",					null);			INDEX_TO_CHARSET[95] = getJavaEncodingForMysqlEncoding("cp932",					null);			INDEX_TO_CHARSET[96] = getJavaEncodingForMysqlEncoding("cp932",					null);			INDEX_TO_CHARSET[97] = getJavaEncodingForMysqlEncoding("eucjpms",					null);			INDEX_TO_CHARSET[98] = getJavaEncodingForMysqlEncoding("eucjpms",					null);		} catch (SQLException sqlEx) {			// ignore, it won't happen in this case		}	}	final static String getJavaEncodingForMysqlEncoding(String mysqlEncoding,			Connection conn) throws SQLException {		return (String) MYSQL_TO_JAVA_CHARSET_MAP.get(mysqlEncoding);	}	final static String getMysqlEncodingForJavaEncoding(String javaEncodingUC,			Connection conn) throws SQLException {		List mysqlEncodings = (List) CharsetMapping.JAVA_UC_TO_MYSQL_CHARSET_MAP				.get(javaEncodingUC);		;		if (mysqlEncodings != null) {			Iterator iter = mysqlEncodings.iterator();			VersionedStringProperty versionedProp = null;			while (iter.hasNext()) {				VersionedStringProperty propToCheck = (VersionedStringProperty) iter						.next();				if (conn == null) {					// Take the first one we get					return propToCheck.toString();				}				if (versionedProp != null && !versionedProp.preferredValue) {					if (versionedProp.majorVersion == propToCheck.majorVersion							&& versionedProp.minorVersion == propToCheck.minorVersion							&& versionedProp.subminorVersion == propToCheck.subminorVersion) {						return versionedProp.toString();					}				}				if (propToCheck.isOkayForVersion(conn)) {					if (propToCheck.preferredValue) {						return propToCheck.toString();					}					versionedProp = propToCheck;				} else {					break;				}			}			if (versionedProp != null) {				return versionedProp.toString();			}		}		return null;	}	final static int getNumberOfCharsetsConfigured() {		return MYSQL_TO_JAVA_CHARSET_MAP.size() / 2; // because we UC every														// key	}	final static boolean isAliasForSjis(String encoding) {		return ("SJIS".equalsIgnoreCase(encoding)				|| "WINDOWS-31J".equalsIgnoreCase(encoding)				|| "MS932".equalsIgnoreCase(encoding)				|| "SHIFT_JIS".equalsIgnoreCase(encoding) || "CP943"				.equalsIgnoreCase(encoding));	}	final static boolean isMultibyteCharset(String javaEncodingName) {		String javaEncodingNameUC = javaEncodingName				.toUpperCase(Locale.ENGLISH);		return MULTIBYTE_CHARSETS.containsKey(javaEncodingNameUC);	}	private static void populateMapWithKeyValuePairs(String configKey,			Map mapToPopulate, boolean addVersionedProperties,			boolean addUppercaseKeys) {		String javaToMysqlConfig = CHARSET_CONFIG.getProperty(configKey);		if (javaToMysqlConfig != null) {			List mappings = StringUtils.split(javaToMysqlConfig, ",", true);			if (mappings != null) {				Iterator mappingsIter = mappings.iterator();				while (mappingsIter.hasNext()) {					String aMapping = (String) mappingsIter.next();					List parsedPair = StringUtils.split(aMapping, "=", true);					if (parsedPair.size() == 2) {						String key = parsedPair.get(0).toString();						String value = parsedPair.get(1).toString();						if (addVersionedProperties) {							List versionedProperties = (List) mapToPopulate									.get(key);							if (versionedProperties == null) {								versionedProperties = new ArrayList();								mapToPopulate.put(key, versionedProperties);							}							VersionedStringProperty verProp = new VersionedStringProperty(									value);							versionedProperties.add(verProp);							if (addUppercaseKeys) {								String keyUc = key.toUpperCase(Locale.ENGLISH);								versionedProperties = (List) mapToPopulate										.get(keyUc);								if (versionedProperties == null) {									versionedProperties = new ArrayList();									mapToPopulate.put(keyUc,											versionedProperties);								}								versionedProperties.add(verProp);							}						} else {							mapToPopulate.put(key, value);							if (addUppercaseKeys) {								mapToPopulate.put(key										.toUpperCase(Locale.ENGLISH), value);							}						}					} else {						throw new RuntimeException(								"Syntax error in Charsets.properties "										+ "resource for token \"" + aMapping										+ "\".");					}				}			} else {				throw new RuntimeException("Missing/corrupt entry for \""						+ configKey + "\" in Charsets.properties.");			}		} else {			throw new RuntimeException("Could not find configuration value "					+ "\"" + configKey + "\" in Charsets.properties resource");		}	}}class VersionedStringProperty {	int majorVersion, minorVersion, subminorVersion;	boolean preferredValue = false;	String propertyInfo;	VersionedStringProperty(String property) {		property = property.trim();		if (property.startsWith("*")) {			property = property.substring(1);			preferredValue = true;		}		if (property.startsWith(">")) {			property = property.substring(1);			int charPos = 0;			for (charPos = 0; charPos < property.length(); charPos++) {				char c = property.charAt(charPos);				if (!Character.isWhitespace(c) && !Character.isDigit(c)						&& c != '.') {					break;				}			}			String versionInfo = property.substring(0, charPos);			List versionParts = StringUtils.split(versionInfo, ".", true);			majorVersion = Integer.parseInt(versionParts.get(0).toString());			if (versionParts.size() > 1) {				minorVersion = Integer.parseInt(versionParts.get(1).toString());			} else {				minorVersion = 0;			}			if (versionParts.size() > 2) {				subminorVersion = Integer.parseInt(versionParts.get(2)						.toString());			} else {				subminorVersion = 0;			}			propertyInfo = property.substring(charPos);		} else {			majorVersion = minorVersion = subminorVersion = 0;			propertyInfo = property;		}	}	VersionedStringProperty(String property, int major, int minor, int subminor) {		propertyInfo = property;		majorVersion = major;		minorVersion = minor;		subminorVersion = subminor;	}	boolean isOkayForVersion(Connection conn) throws SQLException {		return conn.versionMeetsMinimum(majorVersion, minorVersion,				subminorVersion);	}	public String toString() {		return propertyInfo;	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -