精华内容
下载资源
问答
  • python 实现gbk 编码文件转utf-8编码格式
  • utf-8和GBK编码文件互相转换,需要.net4.0。 压缩包是是源代码。可执行程序在bin\debug下面。
  • 可以实现编码转换,使用编码utf-8转换gbk
  • UTF-8/GBK编码转换工具

    2015-09-29 10:14:42
    UTF-8/GBK编码转换工具,支持批量文件转换,支持两种编码互转
  • GBKUTF-8批量文件3秒快速转码工具(支持GBK,UTF-8免费转换),UTF-8/GBK编码在线转换工具,压缩包可以有多目录与文件,如目录中有图片不会转码,但是会随转码好的文件一起打包下载。 使用帮助 . 上传压缩包(仅支持zip...
  • utf8转换gbk格式

    2015-07-31 18:19:42
    该代码是将utf8编码为gbk格式,可以作为编码转换器使用。
  • 需求:将utf-8格式的文件转换gbk格式的文件 实现代码如下: 复制代码 代码如下: def ReadFile(filePath,encoding=”utf-8″):  with codecs.open(filePath,”r”,encoding) as f...def UTF8_2_GBK(src,dst):
  • 利用libiconv在windows下实现汉字utf8编码和gbk编码之间的转换,内涵完整的VS2013工程
  • UTF8/GBK编码转换工具

    2016-03-22 09:55:41
    UTF8/GBK编码转换工具,可以对UTF8/GBK进行随意转换
  • 给大家分享了两种转换的方法,都可以实现PHP数组的编码进行相互转换。大家可以参考自己的实际情况进行选择哪一种方法,下面来一起看看吧。
  • STM32 MDK utf8 gbk编码转换;keil默认gbk编码,而网络传输默认utf8,遇到中文就会乱码
  • c++跨平台utf8gbk编码互相转换 在windows下用头文件里的函数进行多字节宽字符转换, linux下采用头文件里的函数进行编码互相解析。
  • gbk和 utf-8 转换

    2016-09-26 17:17:22
    修正上版本的bug, c 源码, gbk和utf8 互相转换(不含库) 通过查表实现转换 实际转换gbk -- unicode --utf8
  • 资源介绍:将一个GBK编码的文本转换为URL编码,返回一个URL编码将一个UTF8编码的文本转换为URL编码,返回一个URL编码资源作者:易语言在线自学资源界面:资源下载:
  • gbk和utf8转换程序

    2017-04-26 16:55:06
    最近看c++11,发现c++11增加了对utf8的直接支持,这样就可以直接进行utf8和gbk的互相转换了,而无需使用windows的函数。自己完成了一下,发现确实强大。
  • 编码转换工具UTF8GBK或者GBKUTF8

    热门讨论 2011-11-15 16:16:21
    编码转换工具UTF8GBK或者GBKUTF8,强烈推荐。它支持各类编码互转,且支持批量文件转码。
  • 本资源提供了一个完整的UTF8GBK和GBKUTF8的完整字库代码,需要用的朋友,欢迎下载,字库仅支持GB2312字库。超出GB2312字库的字符暂不支持。
  • 文件编码转换(utf8gbk相互转换) 可以将utf8(gbk)的文件转换gbk(utf8)格式
  • UTF8GBK C语言 单片机

    2017-09-28 15:22:57
    基于Keil的用C语言写的UTFGBK的代码,用的查表法,字库占用41K左右Flash,可以用于将数据流中的UTF文本转化为GBK,解决串口显示或者TF或LCD显示中文乱码的问题
  • 批量编码转换工具(UTF8/GBK), 平时工程有时候要gbk, 有时候要utf8, 好麻烦,转换工具批量搞定.
  • 选择目录,递归查找所有子目录的文件。遇到gb系列的编码自动转换utf-8文件。 注意: 操作前,请自己备份文件!!! 需要在.netframework4环境下运行!!!
  • UTF8GBK转换工具

    2013-10-23 13:57:07
    1。UTF8编码转gbk编码 2。GBKutf8编码 3。绿色,简单,源代码
  • 批量文件转码工具,支持GBK,UTF-8转换,window下面使用,亲测可以使用!!!!!!!!!!
  • 1.转换gbk编码文件为utf-8编码文件 iconv -f gbk -t utf-8 aa.txt > aa.bak 其中-f指的是原始文件编码,-t是输出编码 aa.txtl是原始文件 aa.bak是输出结果文件 iconv -c --verbose -f gbk -t utf-8 aa_gbk...

    1.转换gbk编码文件为utf-8编码文件

    iconv  -f gbk -t utf-8 aa.txt > aa.bak

    其中-f指的是原始文件编码,-t是输出编码 aa.txtl是原始文件 aa.bak是输出结果文件

    iconv -c --verbose  -f gbk -t utf-8 aa_gbk.html -o aa_utf8.html

    -c 指的是从输出中忽略无效的字符, –verbose指的是打印进度信息 -o是输出文件

    2.转换utf-8编码文件为gb2312编码文件

    iconv -c --verbose  -f utf-8 -t gb2312 index_utf8.html -o index_gb2312.html
    展开全文
  • 在线UTF-8/GBK互相转换工具

    万次阅读 2019-05-09 09:37:12
  • *文件编码转换gbkutf-8互转 * changeFileCode 方法,4个属性:(需要转换的文件目录,转换后的文件目录,当前文件编码格式,转换成需要的文件编码); * 需要转换的文件目录,转换后的文件目录--可以为同一路径...
  • UTF-8GBK字符之间的转换

    千次阅读 2020-05-26 10:20:57
    8编码的字符进行显示,必须经过算法将UTF-8编码对照Unicode编码转换GBK汉字编码之后才能显示,而本文介绍从外部FLASH中读取Unicode编码和GBK字符编码,将UTF-8字符转换GBK字符。 二、UTF-8转换GBK字符的原理 ...

    一、本文提纲

    在嵌入式产品中,难免会遇到由服务器或者APP端推送的消息内容,而大多数推送消息内容的字符编码都为UTF-8,底层硬件需要将推送的消息送到LCD或者OLED等屏幕上进行显示,此时就涉及到一个编码转换的内容,因为硬件不能直接将UTF-8编码的字符进行显示,必须经过算法将UTF-8编码对照Unicode编码转换为GBK汉字编码之后才能显示,而本文介绍从外部FLASH中读取Unicode编码和GBK字符编码,将UTF-8字符转换为GBK字符。

    二、UTF-8转换为GBK字符的原理

    1.UTF-8转换为Unicode编码

    UTF-8编码不能直接转换为GBK汉字编码,中间需要先转换为Unicode编码,在由Unicode编码转换为GBK汉字编码

    2.Unicode编码转换为GBK汉字编码

    Unicode汉字编码与GBK汉字编码的对照关系为,两个Unicode编码对应一个汉字,并且在Unicode编码中,汉字编码的起始位置是0x4e00,也就是说将UTF-8汉字编码转换为Unicode编码时需要偏移0x4e00去读取数据。

    三、UTF-8转换为GBK字符的C代码实现过程

    1.从flash读取Unicode编码

    unsigned short  mb_uni2gb_table[]={0};
    uint16_t Read_flash_unicode(uint16_t* unicode,uint32_t ReadAddr,uint16_t num_len)
    {
    	  uint8_t buff[10];//缓冲区 
    	  ReadAddr=ReadAddr+Offset_addr;//为存储在flash 中的偏移地址
    	  SPI_Flash_Read_2(buff,ReadAddr,num_len);
    	  unicode[0]=(buff[1]<<8)|buff[0];
    	  return 1;
    }

    2.UTF-8转换为Unicode编码

    int SwitchToGbk(const unsigned char* pszBufIn, int nBufInLen, unsigned char* pszBufOut, int* pnBufOutLen)
    {
    	int i = 0;
    	int j = 0;
    	int nLen;
    	unsigned short unicode;
    	unsigned short gbk;
    	for(; i < nBufInLen; i++, j++)
    	{
    		if((pszBufIn[i] & 0x80) == 0x00)		// 1位
    		{
    			nLen = 1;
    			pszBufOut[j]= pszBufIn[i];
    		}
    		
    		else if((pszBufIn[i] & 0xE0) == 0xC0)// 2位
    		{
    			nLen = 2;
    			unicode = (pszBufIn[i] & 0x1F << 6) | (pszBufIn[i+1]& 0x3F);
    		}
    		else if ((pszBufIn[i] & 0xF0) == 0xE0) // 3位 
    		{
    
    			if (i+ 2 >= nBufInLen) return -1; 
    			unicode = (((int)(pszBufIn[i] & 0x0F)) << 12) | (((int)(pszBufIn[i+1] &  0x3F)) << 6) | (pszBufIn[i+2]  & 0x3F); 
                            //从flash读取Unicode编码
    			Read_flash_unicode(mb_uni2gb_table,(unicode-0x4e00)*2,2);
    			gbk = *mb_uni2gb_table;
    			pszBufOut[j]= gbk/256;
    			pszBufOut[j+1] = gbk%256;
    			j++;
    			i+=2;
    		}
    		else
    		{
    			return -1;
    		}
    	}
    	*pnBufOutLen = j;
    	return 0;
    }

    3.Unicode编码转换为GBK汉字编码

    void Get_HzMat(unsigned char *code,unsigned char *mat)
    {		    
    	unsigned char qh,ql;
    	unsigned char i;					  
    	unsigned long foffset; 
    	uint8_t size = 16;
    	uint8_t csize=(size/8+((size%8)?1:0))*(size);//得到字体一个字符对应点阵集所占的字节数	 
    	qh=*code;
    	ql=*(++code);
    	if(qh<0x81||ql<0x40||ql==0xff||qh==0xff)//非 常用汉字
    	{   		    
    	    for(i=0;i<csize;i++)*mat++=0x00;//填充满格
    	    return; //结束访问
    	}          
    	if(ql<0x7f)ql-=0x40;//注意!
    	else ql-=0x41;
    	qh-=0x81;   
    	foffset=((unsigned long)190*qh+ql)*csize;	//得到字库中的字节偏移量  		  
    	SPI_Flash_Read_2(mat,foffset+Offset_addr,csize);//Offset_addr为GBK存储在flash中的起始偏移地址	
    }

    四、ST7735s显示屏应用案例

    1.lcd显示单个汉字的应用案例

    /***************************************************************************************
    ** 函数名称 **:void Show_Font(uint16_t x,uint16_t y,uint8_t *font,uint16_t fc)
    ** 函数功能 **:lcd显示单个汉字
    ** 输入参数 **:uint16_t x,uint16_t y,uint8_t *font(汉字内容),uint16_t fc(汉字颜色)
    ** 输出参数 **:无
    ** 返 回 值 **:无
    ****************************************************************************************/
    void Show_Font(uint16_t x,uint16_t y,uint8_t *font,uint16_t fc)
    {
    	uint8_t size = 16;//固定显示16号字体
    	uint8_t temp,t,t1;
    	uint16_t y0=y;
    	uint8_t dzk[72];   
    	uint8_t csize=(size/8+((size%8)?1:0))*(size);//得到字体一个字符对应点阵集所占的字节数	 
    	if(size!=12&&size!=16&&size!=24)return;	//不支持的size
    	Get_HzMat(font,dzk);	//得到相应大小的点阵数据 	
    	for(t=0;t<csize;t++)
    	{   												   
    		temp=dzk[t];			//得到点阵数据  	
    		for(t1=0;t1<8;t1++)
    		{		
    			if(temp&0x80)
    			  Gui_DrawPoint(x,y,fc);//lcd基础描点函数
    			  temp<<=1;
    			  y++;
    			if((y-y0)==size)
    			{
    				y=y0;
    				x++;
    				break;
    			}
    		}  	 
    	} 
    }

    2.在指定区域内自动换行显示多个汉字

    void Show_Str(uint16_t x,uint16_t y,uint16_t width,uint16_t height,uint8_t*str,uint16_t fc)
    {		
      uint8_t size = 16;	
      uint16_t x0=x;
      uint16_t y0=y;							  	  
      uint8_t bHz=0;     //字符或者中文  
      GPIO_Pin_Clear(U32BIT(LCD_CS));
      while(*str!=0)//数据未结束
      { 
                if(!bHz)
                {
    	            if(*str>0x80)bHz=1;//中文 
    	            else              //字符
    	            {      
    		            if(x>(x0+width-size/2))//换行
    		            {				   
                                y+=size;
                                x=x0;	   
    		            }							    
    		            if(y>(y0+height-size))break;//越界返回      
    		            if(*str==13)//换行符号
    		            {         
                                y+=size;
                                x=x0;
                                str++; 
    		            }  
    		            else 
                                LCD_ShowChar(x,y,*str,fc);//有效部分写入 	
    					
                                str++; 
                                x+=size/2; //字符,为全字的一半            
                    }
                }
            else//中文 
            {     
                bHz=0;//有汉字库    
                if(x>(x0+width-size))//换行
                {	    
                    y+=size;
                    x=x0;		  
                }
                if(y>(y0+height-size))break;//越界返回  						     
                    Show_Font(x,y,str,fc); //显示这个汉字,空心显示 
                    str+=2; 
                    x+=size;//下一个汉字偏移	    
            }						 
       }  
    	 GPIO_Pin_Set(U32BIT(LCD_CS));
    }   

     

    展开全文
  • 此程序为C语言源代码,提供了GBKUTF8格式转化的函数,可直接调用,不需要任何库。
  • 个人直接从从discuz的官方gitee.com获得,便于大家下载。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 89,783
精华内容 35,913
关键字:

utf_8和gbk的转换