自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

亂碼的問題!程序員永遠無法避免的話題

開發(fā) 后端
為什么說亂碼問題是中國程序員無法避免的話題呢?這個首先要從編碼機制上說起,大家都是中文和英文的編碼格式不是一樣,解碼也是不一樣的!如果中國的程序員不會遇到亂碼,那么只有使用漢語編程。

  漢語編程是怎么回事我也不大清楚,應(yīng)該是前年吧,我一朋友給我介紹漢語編程,怎么不錯不錯?當(dāng)時因為學(xué)習(xí)忙沒去關(guān)注這個,等我閑了,那個朋友不弄這個,問他他也不說不大清楚,最后自己對這個學(xué)習(xí)也不了了之了。

  今天我寫這個不是講解中英文之間的差距,解碼等,我是將我在這幾年工作遇到各種各樣的亂碼的解決方法,總結(jié)一樣,也希望大家能把自己暈倒解決亂碼的方法都說出來,咱們弄一個解決亂碼的“葵花寶典”。

  對于Java由于默認的編碼方式是 UNICODE,所以用中文也易出亂碼問題,常見的解決是

  String s2 = new String(s1.getBytes(“ISO-8859-1”),”GBK”);

  1、utf8解決JSP中文亂碼問題

  一般說來在每個頁面的開始處,加入:

以下是引用片段:
<%@ page language="java" contentType="text/html; charset=UTF-8" 
pageEncoding="UTF-8"%> 
<% 
request.setCharacterEncoding("UTF-8"); 
%> 

<%

  request.setCharacterEncoding("UTF-8");

  %>

  charset=UTF-8 的作用是指定JSP向客戶端輸出的編碼方式為“UTF-8”

  pageEncoding="UTF-8" 為了讓JSP引擎能正確地解碼含有中文字符的JSP頁面,這在LINUX中很有效

  request.setCharacterEncoding("UTF-8"); 是對請求進行了中文編碼

  有時,這樣仍不能解決問題,還需要這樣處理一下:

  String msg = request.getParameter("message");

  String str=new String(msg.getBytes("ISO-8859-1"),"UTF-8");

  out.println(st);

  2、Tomcat 5.5 中文亂碼

  1)只要把%TOMCAT安裝目錄%/ webapps\servlets-examples\WEB-INF\classes\filters\SetCharacterEncodingFilter.class文件拷到你的webapp目錄/filters下,如果沒有filters目錄,就創(chuàng)建一個。

  2)在你的web.xml里加入如下幾行:

以下是引用片段:
 
Set Character Encoding 
filters.SetCharacterEncodingFilter 
 
encoding 
GBK 
 
 
 
Set Character Encoding 
/* 
 
  3)完成.

  2 get方式解決亂碼問題的辦法

  1) 打開tomcat的server.xml文件,找到區(qū)塊,加入如下一行:

  URIEncoding=”GBK”

  完整的應(yīng)如下:

  

以下是引用片段:
 port="80" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" 
enableLookups="false" redirectPort="8443" acceptCount="100" 
debug="0" connectionTimeout="20000" 
disableUploadTimeout="true" 
URIEncoding="GBK" 
/> 
  2)重啟tomcat,一切OK。

  3、xmlHttpRequest中文問題

  頁面jsp用的GBK編碼

 

以下是引用片段:
 代碼 
<%@ page contentType="text/html; charset=GBK"%>   
javascript部分
  代碼
  
function addFracasReport() { 
var url="controler?actionId=0_06_03_01&actionFlag=0010"; 
var urlmsg="&reportId="+fracasReport1.textReportId.value; //故障報告表編號 
var xmlHttp=Common.createXMLHttpRequest(); 
xmlHttp.onreadystatechange = Common.getReadyStateHandler(xmlHttp, eval("turnAnalyPage")); 
xmlHttp.open("POST",url,true); 
xmlHttp.setRequestHeader( " Content-Type " , " application/x-www-form-urlencoded); 
xmlHttp.send(urlmsg); 
  后臺java中獲得的reportId是亂碼問題,不知道該怎么轉(zhuǎn),主要是不知道xmlHttp.send(urlmsg);以后是什么編碼?在后面用java來轉(zhuǎn),試了幾種,都沒有成功,其中有:

  

以下是引用片段:
代碼
  public static String UTF_8ToGBK(String str) {
  try {
  return new String(str.getBytes("UTF-8"), "GBK");
  } catch (Exception ex) {
  return null;
  }
  }
  public static String UTF8ToGBK(String str) {
  try {
  return new String(str.getBytes("UTF-16BE"), "GBK");
  } catch (Exception ex) {
  return null;
  }
  }
  public static String GBK(String str) {
  try {
  return new String(str.getBytes("GBK"),"GBK");
  } catch (Exception ex) {
  return null;
  }
  }
  public static String getStr(String str) {
  try {
  String temp_p = str;
  String temp = new String(temp_p.getBytes("ISO8859_1"), "GBK");
  temp = sqlStrchop(temp);
  return temp;
  } catch (Exception e) {
  return null;
  }
  } 

【編輯推薦】

  1. 高手Java核心技術(shù)學(xué)習(xí)筆記
  2. 告訴你怎樣學(xué)Java才是硬道理
  3. 如何獲取Sun推出的Java認證
  4. 共同學(xué)習(xí)Java環(huán)境變量
  5. JAVA環(huán)境變量的設(shè)置
責(zé)任編輯:王觀 來源: 天極網(wǎng)
相關(guān)推薦

2009-03-12 10:29:10

程序員年齡職場

2015-02-27 09:28:22

程序員

2013-07-10 10:30:12

程序員開發(fā)

2012-08-07 09:29:09

程序員編程

2020-12-07 10:19:01

程序員技術(shù)IT

2018-05-11 15:41:45

IT人老程序員職場

2010-06-02 15:51:33

2015-08-20 09:06:48

程序員

2012-10-09 10:23:07

Linus Torva程序員優(yōu)秀程序員

2023-01-31 08:16:45

GitHub文件Markdown

2014-12-11 10:01:09

程序員

2011-04-15 14:10:21

代碼程序員

2013-08-20 09:33:59

程序員

2023-09-26 01:27:09

AI程序員軟件

2009-03-18 13:08:08

程序員新技術(shù)焦慮癥

2011-05-13 14:34:02

程序員

2014-06-06 13:49:01

程序員項目經(jīng)理

2018-05-13 15:22:02

程序員職業(yè)陷阱

2015-08-12 14:39:47

程序員問題

2018-02-27 16:28:41

軟件程序員接私活
點贊
收藏

51CTO技術(shù)棧公眾號