解决Java中文问题: 针对applet和awt: 1:) Font f = new Font(UIResource.getString( "Default_font"),Font.PLAIN,12); UIManager.put("Label.font",f); UIManager.put("Label.foreground",Color.black); UIManager.put("Button.font",f); UIManager.put("Menu.font",f); UIManager.put("MenuItem.font",f); UIManager.put("List.font",f); UIManager.put("CheckBox.font",f); UIManager.put("RadioButton.font",f); UIManager.put("ComboBox.font",f); UIManager.put("TextArea.font",f);
2:) Font f = new Font("隶书",Font.PLAIN,15); UIManager.put("Button.font",font); UIManager.put("ToggleButton.font",font); UIManager.put("RadioButton.font",font); UIManager.put("CheckBox.font",font); UIManager.put("ColorChooser.font",font); UIManager.put("ToggleButton.font",font); UIManager.put("ComboBox.font",font); UIManager.put("ComboBoxItem.font",font); UIManager.put("InternalFrame.titleFont",font); UIManager.put("Label.font",font); UIManager.put("List.font",font); UIManager.put("MenuBar.font",font); UIManager.put("Menu.font",font); UIManager.put("MenuItem.font",font); UIManager.put("RadioButtonMenuItem.font",font); UIManager.put("CheckBoxMenuItem.font",font); UIManager.put("PopupMenu.font",font); UIManager.put("OptionPane.font",font); UIManager.put("Panel.font",font); UIManager.put("ProgressBar.font",font); UIManager.put("ScrollPane.font",font); UIManager.put("Viewport",font); UIManager.put("TabbedPane.font",font); UIManager.put("TableHeader.font",font); UIManager.put("TextField.font",font); UIManager.put("PassWordFiled.font",font); UIManager.put("TextArea.font",font); UIManager.put("TextPane.font",font); UIManager.put("EditorPane.font",font); UIManager.put("TitledBorder.font",font); UIManager.put("ToolBar.font",font); UIManager.put("ToolTip.font",font); UIManager.put("Tree.font",font);
3:)针对jsp和servlet: 解决办法: 第一: 在jsp页面加入: <%@ page contentType="text/Html; charset=gb2312" %> 或者在servlet里面 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html; charset=gb2312");//这是重要的 上面的假如在不行就用如下的方法在数据入库前进行调用: public static String UnicodeToChinese(String s){ try{ if(s==nulls.equals("")) return ""; String newstring=null; newstring=new String(s.getBytes("ISO8859_1"),"gb2312"); return newstring; } catch(UnsupportedEncodingException e) { return s; } }
public static String ChineseToUnicode(String s){ try{ if(s==nulls.equals("")) return ""; String newstring=null; newstring=new String(s.getBytes("gb2312"),"ISO8859_1"); return newstring; } catch(UnsupportedEncodingException e) { return s; } }
3:)解决weblogic/webshpere中文问题: 在web.XML文件中需要配置中文环境。r如下: <context-param> <param-name>weblogic.httpd.inputCharset./*</param-name> <param-value>GB2312</param-value> </context-param> 4:)javamail附件中文乱码: /* @从BodyPart中提取使用ISO-8859-1编吗的文件名 @因为BodyPart.getFilename()过程已经对文件名作了一次编码,有时不能直接使用 */ public static String getISOFileName(Part body){ //设置一个标志,判定文件名从Content-Disposition中获取还是从Content-Type中获取 boolean flag=true; if(body==null){ return null; } String[] cdis; try{ cdis=body.getHeader("Content-Disposition"); } catch(Exception e){ return null; } if(cdis==null){ flag=false; } if(!flag){ try{ cdis=body.getHeader("Content-Type"); } catch(Exception e){ return null; } } if(cdis==null){ return null; } if(cdis[0]==null){ return null; } //从Content-Disposition中获取文件名 if(flag){ int pos=cdis[0].indexOf("filename="); if(pos<0){ return null; } //假如文件名带引号 if(cdis[0].charAt(cdis[0].length()-1)==´"´){ return cdis[0].substring(pos+10,cdis[0].length()-1); } return cdis[0].substring(pos+9,cdis[0].length()); } else{ int pos=cdis[0].indexOf("name="); if(pos<0){ return null; } //假如文件名带引号 if(cdis[0].charAt(cdis[0].length()-1)==´"´){ return cdis[0].substring(pos+6,cdis[0].length()-1); } return cdis[0].substring(pos+5,cdis[0].length()); } } 8:字符串分割: public int getCount(String str,String sign){//查找某一字符串中str,特定子串s的出现次数 if(str==null) return 0; StringTokenizer s=new StringTokenizer(str,sign); return s.countTokens(); } public String[] getArray(String str,String sign){//按特定子串s为标记,将子串截成数组。 int count=getCount(str,sign); int j=0; String[] arr=new String[count]; for(int i=0;i<count;i++){ if(str.indexOf(sign)!=-1){ j =str.indexOf(sign); arr[i]=str.substring(0,j); str =str.substring(j+1); }else{ arr[i]=str; } } return arr;
} 9:jdk1.3没有字符串替换函数,(jdk1.4有)。 解决1.3中的个这个问题如下:
public String stringReplace(String sourceString, String toReplaceString, String replaceString) { String returnString = sourceString; int stringLength = 0; if(toReplaceString != null) { stringLength = toReplaceString.length(); } if(returnString != null && returnString.length() > stringLength) { int max = 0; String S4 = ""; for(int i = 0; i < sourceString.length(); i++) { max = i + toReplaceString.length() > sourceString.length()? sourceString.length():i + stringLength; String S3 = sourceString.substring(i, max); if(!S3.equals(toReplaceString)) { S4 += S3.substring(0,1); }else{ S4 += replaceString; i += stringLength -1 ; } } returnString = S4; } return returnString; } 9:设置weblogic连接池:
pool的配置: 假设已配置服务:eXPserv 且数据库服务器机器名为:expserv 数据库sid:expservSID,用户名和密码都为:expserv 以weblogic7.0为例,首先启动服务 http://localhost:port/console 打开servicejdbcconnection pools 配置OraclePool如下: Configuration: Name: oraclePool URL: jdbc:oracle:thin:@expserv:1521:expservSID Driver Classname: oracle.jdbc.driver.OracleDriver Properties(key=value): user=expserv Targets: Targets-Server:expserv 在weblogic7.0中除了数据库密码,其他的pool参数都可以在config.xml中直接用文本编辑器直接修改。
|