汉字转UTF8 16进制字符串

Posted 韩搏

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了汉字转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])

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

汉字转UTF8 16进制字符串

汉字转UTF8 16进制字符串

如何使用C语言将汉字转换成UTF8编码,如将“你好”转成:%E4%BD%A0%E5%A5%

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

易语言汉字转utf-8

16进制转汉字的原理是啥