求高手解答
utf-8转gbk有什么实现方法吗实现根据姓名自动填充拼音功能,是在windows环境下开发的,但是服务器是linux系统,页面编码是utf-8所以发布出现乱码,认定是编码问题。求解!! --------------------编程问答-------------------- 有,在web.xml设置,对于本机编译来说,你用gbk,另外一个用utf-8就可以了。你去看看... --------------------编程问答-------------------- <!-- 中文检测过滤器 -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>*.html</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
楼主是要这个么? --------------------编程问答-------------------- 参考:http://blog.csdn.net/hzc543806053/article/details/7075490 --------------------编程问答-------------------- 可能问题我说不不是很清楚,是要通过文本框填写的中文转换成拼音(方法是通过ascii码进行转换的),只是在转换过程中linux不识别utf-8编码所以返回了问号。
--------------------编程问答-------------------- 或求一个utf-8版的中文转拼音
/**
* 获取汉语字符串的声母组合,每个汉字取拼音的第一个字符组成的一个字符串
* @param cnStr 汉字的字符串
* @return 每个汉字拼音的第一个字母所组成的汉字
*/
public static String getFirstSpell(String cnStr)
{
if (null == cnStr || "".equals(cnStr.trim())) {
return cnStr;
}
char[] chars = cnStr.toCharArray();
StringBuffer retuBuf = new StringBuffer();
for (int i = 0, Len = chars.length; i < Len; i++) {
String ascii = getCnAscii(chars[i]);
//System.out.println(ascii);
if (ascii.length() == 1) { // 取ascii时出错
retuBuf.append(chars[i]);
} else {
String spell = getSpellByAscii(ascii).substring(0,1);
//System.out.println(spell);
if (spell == null) {
retuBuf.append(chars[i]);
} else {
retuBuf.append(spell);
} // end of if spell == null
} // end of if ascii <= -20400
} // end of for
return retuBuf.toString();
}
/**
* 获得单个汉字的Ascii,并用"-"连接成一个字符串
*
* @param cn char 汉字字符
* @return string 错误返回 空字符串,否则返回ascii
*/
public static String getCnAscii(char cn) {
System.out.println("cn:"+cn);
byte[] bytes = (String.valueOf(cn)).getBytes();
System.out.println(bytes.length);
if (bytes == null || bytes.length > 2 || bytes.length <= 0) { // 错误
return "";
}
if (bytes.length == 1) { // 英文字符
return new String(bytes);
}
if (bytes.length == 2) { // 中文字符
int hightByte = 256 + bytes[0];
int lowByte = 256 + bytes[1];
String ascii = hightByte + "-" + lowByte;
System.out.println("ASCII=" + ascii);
return ascii;
}
return ""; // 错误
}
补充:Java , Java SE