精华内容
下载资源
问答
  • hex转换asicii

    2012-10-23 13:00:59
    可实现中文HEX、asicii,的互
  • LabVIEW ASCii与Hex转换

    2019-05-06 12:36:55
    包含 ASCii与Hex互相转换,16进制&正常显示&2进制&10;进制转换,1016进制转换
  • 字符串 Hex 转换 输出

    热门讨论 2010-03-02 10:05:21
    1.字符串Asc&Unicode和Hex之间的转换 2.可以格式化显示输出这个功能类似printf,但是是一个指定字节大小为单位的'值'来进行输出的。 3.可以通过Hex输入查看原字符串 4.字符统计功能 5.输入的字符串Asc&Unicode或者...
  • 今天在cocoaChina上看到有人问到,以前记得在哪儿看到...- (NSString *)stringFromHexString:(NSString *)hexString { // eg. hexString = @"8c376b4c" char *myBuffer = (char *)malloc((int)[hexString leng...

    今天在cocoaChina上看到有人问到,以前记得在哪儿看到过解决方法,特此标记一下:

    - (NSString *)stringFromHexString:(NSString *)hexString {  // eg. hexString = @"8c376b4c"
        
        char *myBuffer = (char *)malloc((int)[hexString length] / 2 + 1);
        bzero(myBuffer, [hexString length] / 2 + 1);
        for (int i = 0; i < [hexString length] - 1; i += 2) {
            unsigned int anInt;
            NSString * hexCharStr = [hexString substringWithRange:NSMakeRange(i, 2)];
            NSScanner * scanner = [[[NSScanner alloc] initWithString:hexCharStr] autorelease];
            [scanner scanHexInt:&anInt];
            myBuffer[i / 2] = (char)anInt;
        }
        NSString *unicodeString = [NSString stringWithCString:myBuffer encoding:NSUnicodeStringEncoding];
    //    printf("%s\n", myBuffer);
        free(myBuffer);
        
        NSString *temp1 = [unicodeString stringByReplacingOccurrencesOfString:@"\\u" withString:@"\\U"];
        NSString *temp2 = [temp1 stringByReplacingOccurrencesOfString:@"\"" withString:@"\\\""];
        NSString *temp3 = [[@"\"" stringByAppendingString:temp2] stringByAppendingString:@"\""];
        NSData *tempData = [temp3 dataUsingEncoding:NSUTF8StringEncoding];
        NSString *temp4 = [NSPropertyListSerialization propertyListFromData:tempData
                                                               mutabilityOption:NSPropertyListImmutable
                                                                         format:NULL
                                                               errorDescription:NULL];
        NSString *string = [temp4 stringByReplacingOccurrencesOfString:@"\\r\\n" withString:@"\n"];
        
        NSLog(@"-------string----%@", string); //输出 谷歌
        return string;
    }

    转载于:https://www.cnblogs.com/appwgh/archive/2012/08/21/2648798.html

    展开全文
  • 总结平时遇到的各种字符串,byte,hex之间的相互转换 /* * 将16进制数字解码成字符串,适用于所有字符(包括中文) */ public static String hexStr2Str(String bytes) { ByteArrayOutputStream baos = new ...

    总结平时遇到的各种字符串,byte,hex之间的相互转换

    /*
         * 将16进制数字解码成字符串,适用于所有字符(包括中文)
         */
        public static String hexStr2Str(String bytes) {
            ByteArrayOutputStream baos = new ByteArrayOutputStream(
                    bytes.length() / 2);
            String hexString = "0123456789ABCDEF";
            // 将每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());
        }
     

    /**
         * 将字符串转化成内存中存放的16进制表示 eg. "31323334" ==> "1234"
         * 
         * @param src
         * @return
         */
        public static String hexByteStringToStr(String src) {
            if (src.length() % 2 != 0) {
                return null;
            }
            byte[] tempData = str2bytes(src);
            String finalStr = "";
            for (int i = 0; i < tempData.length; i++) {
                char tempChar = (char) tempData[i];
                finalStr += tempChar;
            }
            return finalStr;
        }

     

    /**
         * 将16进制组成的字符串转换成byte数组 例如 hex2Byte("0710BE8716FB"); 将返回一个byte数组
         * b[0]=0x07;b[1]=0x10;...b[5]=0xFB;
         * 
         * @param src 待转换的16进制字符串
         * @return
         */
        public static byte[] str2bytes(String src) {
            if (src == null || src.length() == 0 || src.length() % 2 != 0) {
                return null;
            }
            int nSrcLen = src.length();
            byte byteArrayResult[] = new byte[nSrcLen / 2];
            StringBuffer strBufTemp = new StringBuffer(src);
            String strTemp;
            int i = 0;
            while (i < strBufTemp.length() - 1) {
                strTemp = src.substring(i, i + 2);
                byteArrayResult[i / 2] = (byte) Integer.parseInt(strTemp, 16);
                i += 2;
            }
            return byteArrayResult;
        }

        /**
         * 将byte数组转换成16进制组成的字符串 例如 一个byte数组 b[0]=0x07;b[1]=0x10;...b[5]=0xFB; byte2hex(b);
         * 将返回一个字符串"0710BE8716FB"
         * 
         * @param bytes 待转换的byte数组
         * @return
         */
        public static String bytesToHexString(byte[] bytes) {
            if (bytes == null) {
                return "";
            }
            StringBuffer buff = new StringBuffer();
            int len = bytes.length;
            for (int j = 0; j < len; j++) {
                if ((bytes[j] & 0xff) < 16) {
                    buff.append('0');
                }
                buff.append(Integer.toHexString(bytes[j] & 0xff));
            }
            return buff.toString();
        }

        /**
         * 16进制转10进制
         * 
         * @param strHex
         * @return
         */
        public static int hexToInt(String strHex) {
            int nResult = 0;
            if (!isHex(strHex))
                return nResult;
            String str = strHex.toUpperCase();
            if (str.length() > 2) {
                if (str.charAt(0) == '0' && str.charAt(1) == 'X') {
                    str = str.substring(2);
                }
            }
            int nLen = str.length();
            for (int i = 0; i < nLen; ++i) {
                char ch = str.charAt(nLen - i - 1);
                try {
                    nResult += (getHex(ch) * getPower(16, i));
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            return nResult;
        }

        /**
         * 判断是否是16进制数
         * 
         * @param strHex
         * @return
         */
        public static boolean isHex(String strHex) {
            int i = 0;
            if (strHex.length() > 2) {
                if (strHex.charAt(0) == '0'
                        && (strHex.charAt(1) == 'X' || strHex.charAt(1) == 'x')) {
                    i = 2;
                }
            }
            for (; i < strHex.length(); ++i) {
                char ch = strHex.charAt(i);
                if ((ch >= '0' && ch <= '9') || (ch >= 'A' && ch <= 'F')
                        || (ch >= 'a' && ch <= 'f'))
                    continue;
                return false;
            }
            return true;
        }

        /**
         * 计算16进制对应的数值
         * 
         * @param ch
         * @return
         * @throws Exception
         */
        private static int getHex(char ch) throws Exception {
            if (ch >= '0' && ch <= '9')
                return (int) (ch - '0');
            if (ch >= 'a' && ch <= 'f')
                return (int) (ch - 'a' + 10);
            if (ch >= 'A' && ch <= 'F')
                return (int) (ch - 'A' + 10);
            throw new Exception("error param");
        }

        /**
         * 计算幂
         * 
         * @param nValue
         * @param nCount
         * @return
         * @throws Exception
         */
        private static int getPower(int nValue, int nCount) throws Exception {
            if (nCount < 0)
                throw new Exception("nCount can't small than 1!");
            if (nCount == 0)
                return 1;
            int nSum = 1;
            for (int i = 0; i < nCount; ++i) {
                nSum = nSum * nValue;
            }
            return nSum;
        }
     

    展开全文
  • bcd与hex转换、以及编码格式

    万次阅读 2017-01-25 10:05:36
    用在网页上可以同一页面显示中文简体繁体及其它语言(如英文,日文,韩文)。 字符 ASCII Unicode UTF-8 A 01000001 00000000 01000001 01000001 中 x 01001110 00101101 11100100 10111000 10101101  ...

    1、BCD码

    (1)压缩BCD:4位二进制数表示一个十进制数,例如:

                   0001 0010 --> 12  

                   0001 0011 --> 13

    (2)BCD:8位二进制数表示一个十进制数,高四位为0;

                   0000 0001 0000 0010 --> 12 

                   0000 0001 0000 0011 --> 13

              一般地,压缩BCD码比较常用,可以节约存储空间。


    2、Hex

            Hex就是16进制,本质上是将字节数组转化为16进制,然后用字符串的形式表现出来。

            原理:一个8bit的数据,也就是(xxxx xxxx),每4个bit可以转化为一个16进制表示,也就是8个bit会转化为(00-ff)之间的16进制数字。

            hex编码 :指将数据编码16进制字符串;hex解码:指16进制字符串解码为数据。


    3、Ascii

            ASCII码使用一个字节编码,所以它的范围基本是只有英文字母、数字和一些特殊符号 ,一个字节能表示的最大的整数就是255,所以,只有256个字符。

    十进制 Ascii 二进制 HexString
    0 48 00110000 30
    1 49 00110001 31
    2 50 00110010 32

    4、Unicode能够表示全世界所有的字节,最常用的是用两个字节表示一个字符(如果要用到非常偏僻的字符,就需要4个字节)。

        字母A用ASCII编码是十进制的65,二进制的 01000001;

        字符0用ASCII编码是十进制的48,二进制的 00110000,注意字符'0'和整数0是不同的;

        汉字中已经超出了ASCII编码的范围,用Unicode编码是十进制的20013,二进制的 01001110 00101101。

        可以猜测,如果把ASCII编码的A用Unicode编码,只需要在前面补0就可以,因此,A的Unicode编码是00000000 01000001。


    5、GBK是只用来编码汉字的,GBK全称《汉字内码扩展规范》,使用双字节编码。


    6、UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,又称万国码。

           UTF-8用1到6个字节编码UNICODE字符。用在网页上可以同一页面显示中文简体繁体及其它语言(如英文,日文,韩文)。
    字符           ASCII                  Unicode                                                UTF-8
    A           01000001       00000000                                  01000001 01000001
    中                 x                01001110 00101101               11100100 10111000 10101101

           从上面的表格还可以发现,UTF-8编码有一个额外的好处,就是ASCII编码实际上可以被看成是UTF-8编码的一部分,所以,大量只支持ASCII编码的历史遗留软件可以在UTF-8编码下继续工作。











    展开全文
  • 实现字串和16进制字符创之间互相转换的功能。原理是基于ASCII码的。支持汉字。今天用到这个东西了,在网上搜了很久没有找到合适的,于是就自己写了个,现在把源码一并传上去,希望对大家有用。
  • uniapp蓝牙项目,需要向蓝牙传递中文字符,并且接收蓝牙中文hex转中文格式显示。

    hex转str

    uniapp蓝牙项目,需要向蓝牙传递中文字符,并且接收蓝牙中文hex转成中文格式显示。

    let readUTF = function(arr) {
    	if (typeof arr === 'string') {
    		return arr;
    	}
    	let UTF = '', _arr = arr;
    	for (let i = 0; i < _arr.length; i++) {
    		let one = _arr[i].toString(2), v = one.match(/^1+?(?=0)/);
    		if (v && one.length == 8) {
    			let bytesLength = v[0].length;
    			let store = _arr[i].toString(2).slice(7 - bytesLength);
    			for (let st = 1; st < bytesLength; st++) {
    				store += _arr[st + i].toString(2).slice(2)
    			}
    			UTF += String.fromCharCode(parseInt(store, 2));
    			i += bytesLength - 1
    		} else {
    			UTF += String.fromCharCode(_arr[i])
    		}
    	}
    	return UTF
    }
    // hexToString
    let hexToString = function (str) {
      if (str.length % 2 != 0) {
        return console.log('必须为偶数');
      }
      let buf = [];
      for (let i = 0; i < str.length; i += 2) {
        buf.push(parseInt(str.substring(i, i + 2), 16));
      }
      return readUTF(buf);
    }
    

    调用方法:

    hexToString('e4bda0e5a5bd')
    // return 你好
    

    str转hex

    let bin2Hex = function (str) {
      let re = /[\u4E00-\u9FA5]/
      let ar = []
      for (let i = 0; i < str.length; i++) {
        let a = ''
        if (re.test(str.charAt(i))) { // 中文
            a = encodeURI(str.charAt(i)).replace(/%/g, '')
        } else {
            a = str.charCodeAt(i).toString(16)
        }
        ar.push(a)
      }
      str = ar.join('')
      return str
    }
    

    调用方法:

    bin2Hex ('你好')
    // return E4BDA0E5A5BD
    

    参考网址

    展开全文
  • 用了: 1.[url]http://aub.iteye.com/blog/1129228[/url] 2.[url]http://blog.csdn.net/hzbigdog/article/details/6877712[/... 这2篇文章的方法,出来都是乱码,求解! 可以加我QQ:381195382 非常感谢!
  • 中文汉字 hex十六进制 互

    千次阅读 2020-06-01 11:27:22
    工具地址:http://stool.chinaz.com/hex
  • Bin_Hex转换工具

    2009-02-06 14:53:39
    这是一款Bin to Hex 文件转换的专用工具,简单实用,希望为你的开发带来方便!
  • 其中遇到一个小插曲,通过Tcpdump数据虽然抓到了,其中部分关键项是中文,用wireshark打开显示一串点。这是遇到乱码了(后来发现,其实只要另存为以下就可以正常显示了)! 想着找个在线转码工具,试了几个都不了。...
  • U-EC5中文下载程序HEX转BIN1,方便开发者的应用
  • 恩,又碰到个蛋疼的编码转换问题了:要把形如\xE9\xBB 的字符串中文。。。在python中我们直接print "\xE9\xBB\x84"即可,在shell中我们直接echo $'\xe9\xbb\x84' #echo -e '\xe9\xbb\x84'也行,注意:不能直接 ...
  • 一个关于iso8583 的解包组包的一些技术和一些进制的转换, 适合没有接触过,但是要马上要完成的童鞋慢
  • 而对于汉子就不这么友好,在gbk中基本上是2个字节,在utf8中是3个,在unicode中就是4个了,具体的在这里不再详述,这里只讲基本的转换原理。 同一个字 比如“我”,在不同的编码中字节码如下: GBK ...
  • C#把汉字转换成16进制(HEX)并向串口发送数据 原文:C#把汉字转换成16进制(HEX)并向串口发送数据报警器实例:(有发送,无返回获取) 1 using System; 2 using System.Collections.Generic; 3 using...
  • 目录 python3.6 b2a_hex a2b_hex ...data = "中文测试用例" data = binascii.b2a_hex(data.encode("utf8")) datas = data.decode(encoding='utf-8') print(type(datas)) print(datas) a2b_hex
  • Python中byte、hex、string转换

    千次阅读 2015-04-10 14:33:46
    byte数组转换成十六进制字符串 ‘’.join(["%02x % x for x in bytes"]).strip() 十六进制字符串转换byte数组 bytearray.fromhex("AABBCC1234") byte数组解析(byte报文中解析出...是要转换的值 ...byte
  • Python3 字符串与hex之间的相互转换

    千次阅读 2019-09-18 10:23:45
    在字符串转换上,python2和python3是不同的,在查看一些python2的脚本时候,总是遇到字符串与hex之间之间的转换出现问题,记录一下解决方法。 1. 在Python2.7.x上,hex字符串和bytes之间的转换是这样的: >&...
  • 使用java实现hex和ascii码的转换

    千次阅读 2018-11-29 23:12:32
    这里记录下使用java实现的hex十六进制和acsii码之间的转换(代码主要还是从网上找来的,简单改吧改吧)。 一、ASCII to Hex 这里是将ascii码转换为十六进制值,代码如下: private static String asciiToHe...
  • ASCII转HEX

    2019-01-04 14:04:16
    (void)viewDidLoad { [super viewDidLoad]; NSString * strInput = @“ABCDEFGHIJKLMN”; NSString * strOutput = [self hexStringFromString:strInput]; NSLog(@"...//ASCII转HEX ABCD–&gt;41...
  • Arduino Hex转字符串库

    千次阅读 2019-07-31 20:02:21
    一、16进制转汉字 示例 输入: 3136BDF8D6C6D7AABBBB3136BDF8D6C6D7AABBBBCEC4B1BED7D6B7FBB4AE2CD4DACFDF3136BDF8D6C6D7AABBBBD4DACFDFB9A4BEDF 输出: 16进制转换16进制转换文本字符串,在线16进制转换在线工具 ...
  • 如何让字母和汉字合并编码成HEXHEX解码成字母和汉字 一、什么是Hex 将每一个字节表示的十六进制表示的内容,用字符串来显示。 二、作用 将不可见的,复杂的字节数组数据,转换为可显示的字符串数据 类似于Base64...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 21,783
精华内容 8,713
关键字:

hex转中文