![]() |
#2
rjsp2016-09-09 09:14
不就是 'a'变61,61变'a'嘛,和UTF8没关系
从binary text document中读取一个个字节,转化为两个字符带一个空格,…… 从你所谓的很么hexcode text document中读取一个个两长度的字符串,转化为一个字节,…… ![]() #include <stdio.h> #include <assert.h> void b2h( const char* b, char* h ) { const char* map_ = "0123456789ABCDEF"; for( ; *b; ++b ) { *h++ = map_[(unsigned char)*b/0x10]; *h++ = map_[(unsigned char)*b%0x10]; *h++ = ' '; } *h = '\0'; } void h2b( const char* h, char* b ) { while( *h ) { unsigned char sp = 0; for( size_t i=0; i!=2; ++h, ++i ) { assert( *h ); switch( *h ) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': sp = (sp*0x10) | (*h-'0'); break; case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': sp = (sp*0x10) | (*h-'A'+10); break; default: assert( 0 ); } } *b++ = sp; if( !*h ) break; assert( *h == ' ' ); ++h; } *b = '\0'; } int main( void ) { { const char* bincode = "a中b"; char hexcode[100]; b2h( bincode, hexcode ); puts( hexcode ); // 输出 61 D6 D0 62 } { const char* hexcode = "61 D6 D0 62"; char bincode[100]; h2b( hexcode, bincode ); puts( bincode ); // a中b } } |
目前想透过程式
读取一个UTF8文字档
然后转出成Hex code的文字档 但输出一样是UTF8编码
同时也可以逆向操作 读取Hex code的文字档 转成原来的内容
也就是此图的1.txt跟2.txt互转:
只有本站会员才能查看附件,请 登录
请问这部分的程式码该如何撰写呢?
感谢!!
[此贴子已经被作者于2016-9-8 18:20编辑过]