东东东 陈煜东的博客

标签存档: Unicode

tomcat web应用 jsp 数据库 spring hibernate使用UTF-8编码

Eclipse项目配置

在Eclipse的项目中,使用UTF-8编码。如果需要,最好把整个workspace都设置成UTF-8编码。

Tomcat配置

此处的配置主要是配置URL的配置,这样可以中文的URL了。在$Tomcat/conf/server.xml文件中添加高亮部分

<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
<Connector port="8080" maxHttpHeaderSize="8192"
         maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
         enableLookups="false" redirectPort="8443" acceptCount="100"
         connectionTimeout="20000" disableUploadTimeout="true"
         URIEncoding="UTF-8"
/>

数据库配置

数据库多种多样,有Oracle、DB2、MySQL、SQLServer等常用的。不一一说明具体的数据库配置。

举例MySQL数据库来说。要设置的有数据库、表、字段。字符集全部设置成utf8编码,字符集整理一般使用utf8_gerenral_ci。

spring配置

在连接数据库上使用jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=UTF-8来确保与数据库的交互使用UTF-8编码。

<bean id="dataSource"                   
    class="org.apache.commons.dbcp.BasicDataSource">        <!-- 配置数据源 -->
    <property name="driverClassName"
        value="com.mysql.jdbc.Driver">
    </property>
    <property name="url"
        value="jdbc:mysql://localhost:3306/db?useUnicode=true&amp;characterEncoding=UTF-8">
    </property>
    <property name="username" value="root"></property>
    <property name="password" value="root"></property>
</bean>

jsp页面配置

第一行确保服务器传送一个UTF-8编码的流给客户端,第六行确保浏览器使用一个UTF-8编码来显示给客户。

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML>
<html>
    <head>
        <title>页面</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    </head>
</html>

Java Web应用配置

web.xml的文件配置

<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>

声明:未经允许禁止转载 东东东 陈煜东的博客 文章,谢谢。如经授权,转载请注明: 转载自东东东 陈煜东的博客

本文链接地址: tomcat web应用 jsp 数据库 spring hibernate使用UTF-8编码 – https://www.chenyudong.com/archives/tomcat-jsp-database-spring-hibernate-all-use-unicode-and-utf8.html

分类: 网站建设

unicode与字符相互转换

在许多场合中,我们会使用到Unicode码,但是unicode编码的形式我们却没办法直观知道是哪个字符,这样我们就需要对讲Unicode码转换成我们认识的汉字字符。

什么是Unicode?

Unicode(统一码、万国码、单一码、标准万国码)是计算机科学领域里的一项业界标准。它对世界上大部分的文字系统进行了整理、编码,使得电脑可以用更为简化地方式来呈现和处理文字。

–Wikipedia

Unicode字符用什么表示?

Unicode通常使用U+XXXX,XXXX四位十六进制数,例如U+4F60。但是在Unicode 3.0后,Unicode使用“U-”然后紧接着八位十六进制数,在Unicode 3.0之前,使用的”U+”后面跟的四位十六位进制数。

在Java对Unicode的实现就不是用这样表示的。Java的形式是”\uXXXX”,例如”\u4F60” 是汉字“你”。

有时候,我们使用在文件中使用汉字字符,但是当文件的编码发生改变的时候,那么就会出现乱码了。如果我们使用unicode的转移形式(”\uXXXX”)去表示中文,那么我们改变文件的编码的时候,就不会出现乱码了,因为我们使用的是ASCII字面值去存储文本的。

但是这样观看Unicode码不够直观,我们不知道具体是什么汉字,所以我们需要通过转换,这样我们就知道具体对应的是什么汉字了。

将Unicode码转化为汉字字符

public static String UnicodetoString(String s){
    String ss[] =  s.split("\\\\u");
    StringBuilder sb=new StringBuilder(ss.length-1);
    for (int i = 1; i &lt; ss.length; i++) {
        sb.append((char)Integer.parseInt(ss[i], 16));
    }
    return sb.toString();
}

获取汉字字符的Unicode码

public static String StirngtoUnicode(String s){
    StringBuilder sb=new StringBuilder();
    for (int i = 0; i &lt; s.length(); i++) {
        sb.append(String.format("\\u%04x", (int)s.charAt(i)));
    }
    return sb.toString();
}

 

因为String.format()方法是用return new Formatter().format(format, args).toString(); 所以先创建一个Formatter对象,减少对象的使用。

public static String StringtoUnicode(String s){

    Formatter formatter = new Formatter();
    for (int i = 0; i &lt; s.length(); i++) {
        formatter.format("\\u%04x", (int)s.charAt(i));
    }
    return formatter.toString();
}

http://docs.oracle.com/javase/tutorial/i18n/text/string.html

声明:未经允许禁止转载 东东东 陈煜东的博客 文章,谢谢。如经授权,转载请注明: 转载自东东东 陈煜东的博客

本文链接地址: unicode与字符相互转换 – https://www.chenyudong.com/archives/unicode-and-characters-converted-into-each-other.html

分类: Java

Copyright © 2017 东东东 陈煜东的博客 粤ICP备13059639号-1

SITEMAP回到顶部 ↑