??xml version="1.0" encoding="utf-8" standalone="yes"?>国产亚洲精品AA片在线观看不加载,亚洲日本va中文字幕久久,亚洲av无码专区在线http://www.tkk7.com/leon/category/11537.html<br> <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;像写情书一样codingzh-cnThu, 22 Nov 2007 20:53:24 GMTThu, 22 Nov 2007 20:53:24 GMT60[tips]使用Java中文字W{换成Unicode~码http://www.tkk7.com/leon/archive/2006/10/28/77846.htmlleonleonSat, 28 Oct 2006 12:53:00 GMThttp://www.tkk7.com/leon/archive/2006/10/28/77846.htmlhttp://www.tkk7.com/leon/comments/77846.htmlhttp://www.tkk7.com/leon/archive/2006/10/28/77846.html#Feedback3http://www.tkk7.com/leon/comments/commentRss/77846.htmlhttp://www.tkk7.com/leon/services/trackbacks/77846.htmlq两天操作XML使用CJdomQ在创徏XML文gq输出到盘的时候遇C个中文编码的问题QJdom默认输出的XML~码是UTF-8Q但是文中如果出现中文字符那么该中文字W就?x)变成ؕ码,造成XML文g无法被正解析?/p>

UTF-8应该是可以用来表CZ文的吧?我不知道q是不是Jdom的一个BUGQJdom 1.0Qbeta?0ơ的产物哦!Q。我google了一下,大家解决q个问题的办法无非是把Jdom的输出字W集改ؓ(f)GBK或者GB2312Q但是这样就?x)有一些副作用Q如果在没有特定字符集(GBK或者GB2312Q的操作pȝ上不是依然不能正解析吗Q一个比较好的解军_法是先把中文转换成Unicode~码在直接输出,E序解析XML后的时候再把Unicode~码转回中文没有问题了?/p>

于是我查看了JDK的文,截至Java 5好像都没有做cM转换的类可以直接使用Q但是我发现一个类 java.util.PropertiesQ它的源代码里有两个U有QprivateQ方?loadConvert (char[] in, int off, int len, char[] convtBuf) ?saveConvert(String theString, boolean escapeSpace) 其实是做特D字W和Unicode~码字符间{换的Q我把它们提取出来,单独包装C个类里就可以使用了?/p>

下面是我包装的类 CharacterSetToolkit

/*
 * CharacterSetToolkit.java
 *
 * Created on 2006q?0?7? 下午2:06
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package mobi.chenwei.lang;

/**
 * q行字符操作的工L(fng)
 * @author Chen Wei
 * @email chenwei.mobi@gmail.com
 */
public class CharacterSetToolkit {
   
    /** Creates a new instance of CharacterSetToolkit */
    public CharacterSetToolkit() {
    }
   
    private static final char[] hexDigit = {
        '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'
    };
   
    private static char toHex(int nibble) {
        return hexDigit[(nibble & 0xF)];
    }
   
    /**
     * 字W串~码?Unicode ?br />     * @param theString 待{换成Unicode~码的字W串?br />     * @param escapeSpace 是否忽略I格?br />     * @return q回转换后Unicode~码的字W串?br />     */
    public static String toUnicode(String theString, boolean escapeSpace) {
        int len = theString.length();
        int bufLen = len * 2;
        if (bufLen < 0) {
            bufLen = Integer.MAX_VALUE;
        }
        StringBuffer outBuffer = new StringBuffer(bufLen);

        for(int x=0; x<len; x++) {
            char aChar = theString.charAt(x);
            // Handle common case first, selecting largest block that
            // avoids the specials below
            if ((aChar > 61) && (aChar < 127)) {
                if (aChar == '\\') {
                    outBuffer.append('\\'); outBuffer.append('\\');
                    continue;
                }
                outBuffer.append(aChar);
                continue;
            }
            switch(aChar) {
                case ' ':
                    if (x == 0 || escapeSpace)
                        outBuffer.append('\\');
                    outBuffer.append(' ');
                    break;
                case '\t':outBuffer.append('\\'); outBuffer.append('t');
                          break;
                case '\n':outBuffer.append('\\'); outBuffer.append('n');
                          break;
                case '\r':outBuffer.append('\\'); outBuffer.append('r');
                          break;
                case '\f':outBuffer.append('\\'); outBuffer.append('f');
                          break;
                case '=': // Fall through
                case ':': // Fall through
                case '#': // Fall through
                case '!':
                    outBuffer.append('\\'); outBuffer.append(aChar);
                    break;
                default:
                    if ((aChar < 0x0020) || (aChar > 0x007e)) {
                        outBuffer.append('\\');
                        outBuffer.append('u');
                        outBuffer.append(toHex((aChar >> 12) & 0xF));
                        outBuffer.append(toHex((aChar >>  8) & 0xF));
                        outBuffer.append(toHex((aChar >>  4) & 0xF));
                        outBuffer.append(toHex( aChar        & 0xF));
                    } else {
                        outBuffer.append(aChar);
                    }
            }
        }
        return outBuffer.toString();
    }
   
    /**
     * ?Unicode 码{换成~码前的Ҏ(gu)字符丌Ӏ?br />     * @param in Unicode~码的字W数l?br />     * @param off 转换的v始偏U量?br />     * @param len 转换的字W长度?br />     * @param convtBuf 转换的缓存字W数l?br />     * @return 完成转换Q返回编码前的特D字W串?br />     */
    public String fromUnicode(char[] in, int off, int len, char[] convtBuf) {
        if (convtBuf.length < len) {
            int newLen = len * 2;
            if (newLen < 0) {
                newLen = Integer.MAX_VALUE;
            }
            convtBuf = new char[newLen];
        }
        char aChar;
        char[] out = convtBuf;
        int outLen = 0;
        int end = off + len;

        while (off < end) {
            aChar = in[off++];
            if (aChar == '\\') {
                aChar = in[off++];
                if (aChar == 'u') {
                    // Read the xxxx
                    int value = 0;
                    for (int i = 0; i < 4; i++) {
                        aChar = in[off++];
                        switch (aChar) {
                        case '0':
                        case '1':
                        case '2':
                        case '3':
                        case '4':
                        case '5':
                        case '6':
                        case '7':
                        case '8':
                        case '9':
                            value = (value << 4) + aChar - '0';
                            break;
                        case 'a':
                        case 'b':
                        case 'c':
                        case 'd':
                        case 'e':
                        case 'f':
                            value = (value << 4) + 10 + aChar - 'a';
                            break;
                        case 'A':
                        case 'B':
                        case 'C':
                        case 'D':
                        case 'E':
                        case 'F':
                            value = (value << 4) + 10 + aChar - 'A';
                            break;
                        default:
                            throw new IllegalArgumentException(
                                    "Malformed \\uxxxx encoding.");
                        }
                    }
                    out[outLen++] = (char) value;
                } else {
                    if (aChar == 't') {
                        aChar = '\t';
                    } else if (aChar == 'r') {
                        aChar = '\r';
                    } else if (aChar == 'n') {
                        aChar = '\n';
                    } else if (aChar == 'f') {
                        aChar = '\f';
                    }
                    out[outLen++] = aChar;
                }
            } else {
                out[outLen++] = (char) aChar;
            }
        }
        return new String(out, 0, outLen);
    }
}



leon 2006-10-28 20:53 发表评论
]]>
[tips]Java 中十q制十六q制怺转换http://www.tkk7.com/leon/archive/2006/09/19/70488.htmlleonleonTue, 19 Sep 2006 04:02:00 GMThttp://www.tkk7.com/leon/archive/2006/09/19/70488.htmlhttp://www.tkk7.com/leon/comments/70488.htmlhttp://www.tkk7.com/leon/archive/2006/09/19/70488.html#Feedback2http://www.tkk7.com/leon/comments/commentRss/70488.htmlhttp://www.tkk7.com/leon/services/trackbacks/70488.html Integer.toHexString(200);

// 十六q制转化为十q制Q结?40?br /> Integer.parseInt("8C",16);

leon 2006-09-19 12:02 发表评论
]]>
[tips] Java中的四舍五入http://www.tkk7.com/leon/archive/2006/06/07/51073.htmlleonleonWed, 07 Jun 2006 03:50:00 GMThttp://www.tkk7.com/leon/archive/2006/06/07/51073.htmlhttp://www.tkk7.com/leon/comments/51073.htmlhttp://www.tkk7.com/leon/archive/2006/06/07/51073.html#Feedback0http://www.tkk7.com/leon/comments/commentRss/51073.htmlhttp://www.tkk7.com/leon/services/trackbacks/51073.htmlJava.lang.Math的round()Ҏ(gu)q回的是整型Q如果要保留数位的话可以先乘以Q小C?*  10Q,使用Java.lang.Math的round()Ҏ(gu)计算之后再除以(数位数 *  10Q?br />

     /**
     * 点数的四舍五入?br />     * 
@param  f float 代表源QҎ(gu)
     * 
@param  digits int 保留的小数点后位?br />     *  @return  float
     
*/

    
public   static   float  round( float  f,  int  digits)  {
        
float  offset  =  1f;
        
if  (digits  ==   0 {
            offset 
=  1f;
        }
  else   if  (digits  >   0 {
            offset 
=  digits  *  10f;
        }
  else   if  (digits  <   0 {
            
return  f;
        }


        f 
=  java.lang.Math.round(f  *  offset)  /  offset;
        
return  f;
    }


leon 2006-06-07 11:50 发表评论
]]>
վ֩ģ壺 ˻18Ƶ| ŮƵվ| һaƵ| ߹ۿAVպA| Ƶһ| AV| 18Ʒ׽߹ۿ | Ʒlvɫ| ëƬѲ| ר˿| ѿbbb| һƵ| ɫ͵͵ۺAVYP| 뾫Ʒһ | ձҺ| Ƭѿҹa| ŷպۺϰȥ| ˳վ߹ۿ| ޾Ʒ| ޾Ʒ΢ľƷ| Ļ | þþþAV| ׾Ʒһ| ѵƵ| һƵ| պAV뾫Ʒ| ѾþþƷƬ㽶| ѹۿƵ| Ļһ| þþþavëƬ| ޵Ӱѹۿ| ݺݺݰƵ| av벻| ѿmvվ| aƵ߹ۿ| ˳߲| ޾Ʒ޿һ | ˳ӰԺ| þþþרav| պŷһѹۿ | ݹѾþþ91|