matlab l 汉字字符串,Matlab中汉字编码的操作
对于汉字‘啊’,它的区位码为‘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中汉字编码的操作相关推荐
- matlab l 汉字字符串,Matlab 字符串处理
MATLAB字符串数组的创建与运算 字符串数组主要用于可视化编程内容,如界面设计和图形绘制. 1.字符串变量的创建 字符变量的创建方法是:在指令窗口中先把待建的字符放在"单引号对" ...
- matlab l 汉字字符串,MATLAB字符串
MATLAB字符串 在MATLAB中,创建一个字符串是相当简单.事实上,我们已经用了很多次.例如,在命令提示符处输入以下: my_string='Tutorial''s Yiibai' MATLAB ...
- matlab字符和字符串,MATLAB字符和字符串
3.字符和字符串 在MATLAB中,几个字符(Character)可以构一个字符串(String).一个字符串被视为一个行向量,而字符串中的每一个字符(含空格符),则是以其ASCII的形式存放于此向量 ...
- java把汉字转换url_url中汉字编码互相转换
url中汉字编码互相转换 Java代码如下: package com.gjob.common; public class URLtoUTF8 { //转换为%E4%BD%A0形式 public sta ...
- matlab数据截取字符串,matlab截取字符串
刚想截取一个matlab字符串中间的一段字符,网上搜了一下,发现strfind这个函数是matlab用来查找字符串中的字符的. help strfind得到的结果: strfind Find one ...
- matlab数组存字符串,MATLAB字符串数组存储为CSV格式
直奔主题,需要保存处理图像的文件名(string)数组.本文只用作自己的实验记录,侵删. 搬运自matlab官网的代码:https://www.mathworks.com/matlabcentral/ ...
- matlab读取二进制文件字符串,matlab读取内容为二进制的TXT文件
本方法同样适合读取十六进制和二进制以外的其他进制文件, txt使用一个最简单的命令就可以读取 textread 这是一个十分有用,简便的函数(对于fopen fscanf而言) 读取二进制txt文件: ...
- 提取文本中的汉字字符串
java 编程点滴 提取文本中的汉字字符串 提取文本中的汉字字符串 代码中含有中文字符,希望将代码中的中文字符提取出来,输出到数据库表格,然后补充对应的英文翻译. 继续处理代码,将文中的中文字符,通过 ...
- matlab求表达式绝对值,matlab绝对值怎么表示
Matlab 的内部常数 Matlab 的常用内部数学函数 指数函数 exp(x) log(x) 对数函数 log10(x) log2(x) 开方函数 sqrt(x) 绝对值函数 abs(x) sin ...
- matlab中字符串,MATLAB字符串数组
4.1.1 字符串入门 [ * 例 4.1.1 -1 ]先请读者实际操作本例,以体会数值量与字符串的区别. clear %清除所有内存变量 a=12345.6789 % 给变量 a 赋数值标量 cla ...
最新文章
- 《Objective-c》Foundation框架 -(字符串:NSString和NSMutableString)
- 获取远程文章内容时,显示图片的两种方式
- Ubuntu 下最简明的翻译词典(调用GoogleAPI,运行在终端)
- 【机器学习】线性回归之概率解释及局部加权线性回归
- iOS 之UITextFiled/UITextView小结
- 一套完整的用户增长系统架构
- 应用数仓ODBC前,这些问题你需要先了解一下
- SQL Server 数据库角色简介
- Smartrac推出智能物联网解决方案
- 【BZOJ】1303: [CQOI2009]中位数图(特殊的技巧)
- 如何解决Mac启动盘已满的问题?MacBooster帮你清理20种垃圾文件!
- postman如何使用mockserver?
- JAVA安卓植物大战僵尸主题四子棋游戏
- 微信小程序仿今日头条小程序端界面和代码演示
- 小程序高级电商前端第1周走进Web全栈工程师一----小程序注册、开发工具推荐、《风袖》首页布局详尽分析、Webstorm开发小程序必配配置、mock数据...
- JavaScript 图表LightningChart完整指南
- java 嵌入groovy_嵌入Groovy
- Python创建免费Ip代理池,伪装Ip。
- C#Aspose操作Word Excel简版(后会研究补充更多功能)
- 中国服务器审计系统,汉邦服务器监控与审计系统