对于汉字‘啊’,它的区位码为‘1601’,机内码是“B0A1”。可是在MATLAB中键入汉字,却发现它的值不是机内码。比如:

>a='啊'

a =

> a=a-0

a =

21834

>b=dec2hex(a)

b =

554A

这个值显然不是合理的机内码,那么如何在Matlab中得到汉字的机内码呢?

一、使用函数 mxArrayToString 将MATLAB的字符串转换为普通字符串时会将unicode代码转换为内码

利用mex函数可以取到内码,在使用函数 mxArrayToString

将MATLAB的字符串转换为普通字符串时会将unicode代码转换为内码,然后再将其输出就可以实现了。将代码存为

mexGetCode.cpp 然后用 mex mexGetCode.cpp 编译一下就可以用了。

[code]

#include "mex.h"

#include "string.h"

void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray

*prhs[])

{

if(nrhs != 1 ||

!mxIsChar(prhs[0]))

{

mexErrMsgTxt("Requires

one char array argument!");

}

if(nlhs >

1)

{

mexErrMsgTxt("Too

many output arguments!");

}

char *pStr =

mxArrayToString(prhs[0]);

if(pStr != NULL)

{

int nLen =

strlen(pStr);

plhs[0] =

mxCreateNumericMatrix(1, nLen, mxUINT8_CLASS, mxREAL);

void *pCode =

mxGetData(plhs[0]);

memcpy(pCode,

(void*)pStr, nLen);

mxFree(pStr);

pStr =

NULL;

}

else

{

plhs[0] =

mxCreateNumericMatrix(0, 0, mxUINT8_CLASS, mxREAL);

}

}

二、使用unicode2native和native2unicode函数

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

y=unicode2native(a,'CP936')

可以看到y是个长度为2的数组了,通过执行native2unicode,又可以吧y转回unicode编码。

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

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

下面是上述两个过程的一个转换实例:

%

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

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

%

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

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

disp(label); %显示汉字

fiOut=fopen('yourtest','wt');

matlab l 汉字字符串,Matlab中汉字编码的操作相关推荐

  1. matlab l 汉字字符串,Matlab 字符串处理

    MATLAB字符串数组的创建与运算 字符串数组主要用于可视化编程内容,如界面设计和图形绘制. 1.字符串变量的创建 字符变量的创建方法是:在指令窗口中先把待建的字符放在"单引号对" ...

  2. matlab l 汉字字符串,MATLAB字符串

    MATLAB字符串 在MATLAB中,创建一个字符串是相当简单.事实上,我们已经用了很多次.例如,在命令提示符处输入以下: my_string='Tutorial''s Yiibai' MATLAB ...

  3. matlab字符和字符串,MATLAB字符和字符串

    3.字符和字符串 在MATLAB中,几个字符(Character)可以构一个字符串(String).一个字符串被视为一个行向量,而字符串中的每一个字符(含空格符),则是以其ASCII的形式存放于此向量 ...

  4. java把汉字转换url_url中汉字编码互相转换

    url中汉字编码互相转换 Java代码如下: package com.gjob.common; public class URLtoUTF8 { //转换为%E4%BD%A0形式 public sta ...

  5. matlab数据截取字符串,matlab截取字符串

    刚想截取一个matlab字符串中间的一段字符,网上搜了一下,发现strfind这个函数是matlab用来查找字符串中的字符的. help strfind得到的结果: strfind Find one ...

  6. matlab数组存字符串,MATLAB字符串数组存储为CSV格式

    直奔主题,需要保存处理图像的文件名(string)数组.本文只用作自己的实验记录,侵删. 搬运自matlab官网的代码:https://www.mathworks.com/matlabcentral/ ...

  7. matlab读取二进制文件字符串,matlab读取内容为二进制的TXT文件

    本方法同样适合读取十六进制和二进制以外的其他进制文件, txt使用一个最简单的命令就可以读取 textread 这是一个十分有用,简便的函数(对于fopen fscanf而言) 读取二进制txt文件: ...

  8. 提取文本中的汉字字符串

    java 编程点滴 提取文本中的汉字字符串 提取文本中的汉字字符串 代码中含有中文字符,希望将代码中的中文字符提取出来,输出到数据库表格,然后补充对应的英文翻译. 继续处理代码,将文中的中文字符,通过 ...

  9. matlab求表达式绝对值,matlab绝对值怎么表示

    Matlab 的内部常数 Matlab 的常用内部数学函数 指数函数 exp(x) log(x) 对数函数 log10(x) log2(x) 开方函数 sqrt(x) 绝对值函数 abs(x) sin ...

  10. matlab中字符串,MATLAB字符串数组

    4.1.1 字符串入门 [ * 例 4.1.1 -1 ]先请读者实际操作本例,以体会数值量与字符串的区别. clear %清除所有内存变量 a=12345.6789 % 给变量 a 赋数值标量 cla ...

最新文章

  1. 《Objective-c》Foundation框架 -(字符串:NSString和NSMutableString)
  2. 获取远程文章内容时,显示图片的两种方式
  3. Ubuntu 下最简明的翻译词典(调用GoogleAPI,运行在终端)
  4. 【机器学习】线性回归之概率解释及局部加权线性回归
  5. iOS 之UITextFiled/UITextView小结
  6. 一套完整的用户增长系统架构
  7. 应用数仓ODBC前,这些问题你需要先了解一下
  8. SQL Server 数据库角色简介
  9. Smartrac推出智能物联网解决方案
  10. 【BZOJ】1303: [CQOI2009]中位数图(特殊的技巧)
  11. 如何解决Mac启动盘已满的问题?MacBooster帮你清理20种垃圾文件!
  12. postman如何使用mockserver?
  13. JAVA安卓植物大战僵尸主题四子棋游戏
  14. 微信小程序仿今日头条小程序端界面和代码演示
  15. 小程序高级电商前端第1周走进Web全栈工程师一----小程序注册、开发工具推荐、《风袖》首页布局详尽分析、Webstorm开发小程序必配配置、mock数据...
  16. JavaScript 图表LightningChart完整指南
  17. java 嵌入groovy_嵌入Groovy
  18. Python创建免费Ip代理池,伪装Ip。
  19. C#Aspose操作Word Excel简版(后会研究补充更多功能)
  20. 中国服务器审计系统,汉邦服务器监控与审计系统

热门文章

  1. python 生成带有alpha 通道的视频
  2. java基于springboot校园音乐点歌网站平台ssm
  3. git中如何获取远程仓库的最新代码?
  4. 纹理(Textures)
  5. 【渝粤题库】陕西师范大学202013 民法专论 作业
  6. 后端开发常用工具指令
  7. 将加密的pdf转化成word
  8. [转载整理]计算机视觉及机器学习牛人和资料
  9. php怎么把字符转成大写,php将字符串全部转换成大写或者小写的方法
  10. 那些黑天鹅教会我们的IT知识