2011-02-23 18:30:00 yangbinfc 阅读数 1096

一个汉字用两个字节 一个字节是8位   

之所以程序员喜欢看16进制是因为他可以直接看到  E2D4    看到前两个就 明白二进制表示什么了 如:

 1010  根据1 2 4 8原则 他应该是10 (10进制)  转化为16进制为A   

 

汉字有自己的编码 因为2^8次方256前 256中已经被占据了 所以需要扩展   gbk就是一种扩展 ,  那么他表示出来的就是16进制的asicc 其实转化成10进制也行 不过16进制方便查看而已   。

 

 

ep:

  17 (10进制)  转化为16进制 就是   16+1   那么就是11     (求权)

 

 

                                16^1+16^0   那么就是 1 0  (后面的规则不能用于16进制)根据1248 就是21

 

 

2011-05-06 10:28:00 diyle 阅读数 5892

手册提供2进制,8进制,10进制,16进制字符串的互相转换函数
decbin(),decoct(),dechex()  base_convert()等
我们只需将中文转换成ascii码,再利用进制转换函数就可以了


要注意字符串编码不同转换的结果也不一样
比如GBK编码一个中文占2个字节而utf-8编码一个中文占3个字节或4个字节
中文与16进制互相转换的示例测试可用,暂时没发现bug。-_-u
以下代码均在utf-8文本编辑器里进行的

 

转换代码:

 

测试代码:

 

输出结果:

6
e4b8ade69687
中文
-----------------
4
d6d0cec4
中文

 

 

2015-04-11 00:19:12 caojengineer 阅读数 2050


// gbk -> utf8
- (NSString *)gbkToUtf8:(Byte *)cString
{
    NSStringEncoding encoding = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);
    
    NSData *pageData = [NSData dataWithBytes:cString length:strlen((Byte *)cString)];
    NSString *string = [[NSString alloc] initWithData:pageData encoding:encoding];
    
    return string;
}

// utf8 -> gbk
- (NSData *)utf8ToGbk:(NSString *)string
{
    NSStringEncoding encoding = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingUTF8);
    return [string dataUsingEncoding:encoding];
}












2009-03-12 21:01:58 gufenglian 阅读数 172

这两天找这个找了很久,到处搜也搜不到资料。

从现在起,好好写博客,好东西大家一起分享

 

package com.util.encode;

import java.io.ByteArrayOutputStream;

/**
 * Description  字符串(包含中文)和16进制之间的转换
 */
public class CodeChange {
 /**
 * 16进制数字字符集
 */
 private static String hexString="0123456789ABCDEF";

 
 
 public static void main(String[] args) {
  System.out.println(toStringHex("41"));
 }
 
 /**
  * 转化字符串为十六进制编码
  */
 public static String toHexString(String s){ 
  String str=""; 
  for (int i=0;i<s.length();i++){ 
   int ch = (int)s.charAt(i); 
   String s4 = Integer.toHexString(ch); 
   str = str + s4;
  } 
  return str; 
 }

 /**
  * 转化十六进制编码为字符串
  */
 public static String toStringHex(String s){
  byte[] baKeyword = new byte[s.length()/2];
  for(int i = 0; i < baKeyword.length; i++){
   try{
    baKeyword[i] = (byte)(0xff & Integer.parseInt(s.substring(i*2, i*2+2),16));
   }catch(Exception e){
    e.printStackTrace();
   }
  }

  try{
   s = new String(baKeyword, "utf-8");//UTF-16le:Not
  }catch (Exception e1){
   e1.printStackTrace();
  }
  return s;
 }

 /**
  * 将字符串编码成16进制数字,适用于所有字符(包括中文)
  */
 public static String encode(String str){
  //根据默认编码获取字节数组
  byte[] bytes=str.getBytes();
  StringBuilder sb=new StringBuilder(bytes.length*2);
  //将字节数组中每个字节拆解成2位16进制整数
  for(int i=0;i<bytes.length;i++){
   sb.append(hexString.charAt((bytes[i]&0xf0)>>4));
   sb.append(hexString.charAt((bytes[i]&0x0f)>>0));
  }
  return sb.toString();
 }
 /**
  * 将16进制数字解码成字符串,适用于所有字符(包括中文)
  */
 public static String decode(String bytes)
 {
  ByteArrayOutputStream baos=new ByteArrayOutputStream(bytes.length()/2);
  //将每2位16进制整数组装成一个字节
  for(int i=0;i<bytes.length();i+=2)
   baos.write((hexString.indexOf(bytes.charAt(i))<<4 |hexString.indexOf(bytes.charAt(i+1))));
  return new String(baos.toByteArray());
 }
}

2018-08-17 09:45:58 zhaoyangjian724 阅读数 1638
# !/usr/bin/env python # -*- coding: utf-8 -*- import sys reload(sys)
sys.setdefaultencoding('utf-8') import binascii
aa='\xd6\xd0\xb9\xfa\xb9\xa4\xc9\xcc\xd2\xf8\xd0\xd0\xd7\xdc\xd0\xd0\xc7\xe5\xcb\xe3\xd6\xd0\xd0\xc4'  print type(aa) print aa print aa.decode('gbk').encode('utf-8')

C:\Python27\python.exe C:/Users/tlcb/PycharmProjects/untitled/rizhiyi/t17.py
<type 'str'>
���������������������
中国工商银行总行清算中心

 

iOS GBK编码与汉字相互转换 BABA 汉

博文 来自: wangyadong99

汉字转16进制方法

阅读数 546

没有更多推荐了,返回首页