public static String getSpell(String cnStr, boolean onlyFirstSpell) {
		if (cnStr == null) {
			return "";
		}
		
		char[] chars = cnStr.trim().toCharArray();
		StringBuffer sb = new StringBuffer();
		for (int i = 0, len = chars.length; i < len; i++) {
			int ascii = getCnAscii(chars[i]);
			if (ascii == 0){ //如果获取汉字的ASCII出错，则不进行转换
				sb.append(chars[i]);
			}else{
				String spell = getSpellByAscii(ascii); //根据ASCII取拼音
				if(spell == null || spell.length() == 0){ //如果根据ASCII取拼音没取到，则到生僻字Map中取
					spell = uncommonWordsMap.get(chars[i]);
				}
				
				if(spell == null || spell.length() == 0){ //如果没有取到对应的拼音，则不做转换，追加原字符
					spell = uncommonWordsMap.get(chars[i]);
				}else{
					if(onlyFirstSpell){
						sb.append(spell.startsWith("’") ? spell.substring(1, 2) : spell.substring(0, 1));
					}else{
						sb.append(spell);
					}
				}
			}
		} // end of for
		return sb.toString();
	}