当前位置:编程学习 > JAVA >>

求高手解答

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编码所以返回了问号。

/**
 * 获取汉语字符串的声母组合,每个汉字取拼音的第一个字符组成的一个字符串
 * @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 ""; // 错误
}
--------------------编程问答-------------------- 或求一个utf-8版的中文转拼音
补充:Java ,  Java SE
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,