matlab unicode,MATLAB中的汉字编码 您所在的位置:网站首页 matlab数值转换 matlab unicode,MATLAB中的汉字编码

matlab unicode,MATLAB中的汉字编码

2023-06-16 02:22| 来源: 网络整理| 查看: 265

网上搜索的,转载别人的经验,经过自己实验,这个方法是可行的。

假设变量label='日',是一个汉字字符,从matlab的workspace可以看到,变量的大小为1×1。

实际占用两个字节。

可以通过执行double(label)看到这两个字节的unicode编码,这里是26085。

可以通过unicode2native转成本地编码,例如:

yyy=unicode2native(label,'CP936')

可以看到yyy是个长度为2的数组了,即它的大小在workspace中显示为2×1。

其中yyy(1)的值为200,即十六进制编码的C8,yyy(2)的值为213,即十六进制编码的D5。

通过执行native2unicode,又可以吧yyy转回unicode编码。

一般情况下,你从文件中读出来的汉字,最初的编码是native形式,要转成unicode形式,才可以显示出来。

而当你把汉字写入文件时,也要先转换成native形式,才可以写。

下面以这两个过程的一个实例作为本文的结束。

%% 假设二进制文件mytest里包含一个“日”字,

% 要把它显示出来,并要求写到另一个文件yourtest里。

%% Su, Tonghua

% Sep. 17, 2009

fiIn=fopen('mytest.txt','r');%打开待读取文件

label=native2unicode(fread(fiIn,2,'uchar'),'CP936');%读取文件并转成unicode编码

disp(label);%显示汉字

fiOut=fopen('yourtest.txt','wt');%打开待写入文件

fwrite(fiOut,sprintf('%s\n',char(unicode2native(label,'CP936'))));%转换成本地编码并写入文件

另外,

一直为GB2312,GBK,GB18030和CP936之间的关系头痛,今天得到Python群里一位高人指点,明白了cp936就是指系统里第936号编码格式,也就是GB2312。

可以看表:

936 gb2312 简体中文(GB2312)

2、[msg,len]=fread(Txt_id,'ubit1');这条语句中,对应于Txt中的字符来说,msg读出的二进制码是按照从低位到高位的顺序排列的。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有