字符串转 UTF-8 二进制

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符串转 UTF-8 二进制相关的知识,希望对你有一定的参考价值。

参考技术A

UTF-8 是一种变长的编码方式。它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度。
编码规则:

编码规则表,字母x表示可用编码的位

根据上表,解读 UTF-8 编码非常简单。如果一个字节的第一位是0,则这个字节单独就是一个字符;如果第一位是1,则连续有多少个1,就表示当前字符占用多少个字节。

阮一峰-字符编码笔记

汉字转UTF8 16进制字符串

把汉字转为UTF-8 16进制字符串,并加\\x,针对一些编译器不认识汉字使用

#coding: utf-8
import os
import sys
import re
import binascii
reload(sys)
# sys.setdefaultencoding('utf-8')
sys.setdefaultencoding('gbk')

def str_to_hexStr(string):
    str_bin = string.encode('utf-8')
    return binascii.hexlify(str_bin).decode('utf-8')
	
def str_to_hex(arg):
	text_str = str(arg)
	text_str = str_to_hexStr(text_str)
	text_str = text_str.upper()
	text_str = re.sub(r"(?<=\\w)(?=(?:\\w\\w)+$)", "\\\\x", text_str)
	text_str = "\\\\x" + text_str
	return "%s-->%s" % (arg, text_str)
	
def file_to_hex(arg):
	wf = open("out."+arg, 'w')
	for text_str in open (arg, 'r'):
		text_str = text_str.replace('\\n','')
		text_str = str_to_hex(text_str)
		print text_str
		wf.write(text_str+"\\n")
		
if __name__=="__main__":
	# str_to_hex(sys.argv[1])
	file_to_hex(sys.argv[1])

以上是关于字符串转 UTF-8 二进制的主要内容,如果未能解决你的问题,请参考以下文章

Java 中文字符串编码之GBK转UTF-8

Delphi 如何将十六进制的UTF-8编码转换为汉字

c语言怎么字符串和16进制转码 汉字转16进制如“我”转换成 “0xe68891”; 16进制转汉字“0xe68891”转 我

php里面怎样把utf-8编码的字符串 (如 \u5e7f), 重新解码成中文,多谢

锟斤拷?UTF-8与GBK互转乱码问题

如何将gbk 编码的字符串转换成 utf