https://www.douban.com/note/387532266/

matlab读取文本文件很方便,textread,textscan等就能搞定。如果整个文件仅包含数字,则有更方便的命令"load".
但是一旦文件包含中文,则往往读出来的是乱码。
经过搜索测试,发现救命稻草:指定编码格式的fopen命令。原文:http://www.ilovematlab.cn/thread-160275-1-1.html
fileID = fopen(filename, permission, machineformat, encoding)
machineformat默认为'n',='native'
encoding就是编码。要想正确读取,需要保证文件保存时的编码格式与读取所用的编码格式相同。汉字常用的是UTF-8,其他还有Big5,GBK等。
如果不确定保存时所用的编码,则可采用'r+'作为permission参数,据说会采用默认的文本编码格式。
fid=fopen('filename','r+','n','utf-8');
tline=fgetl(fid);
while tline
  tline=fgetl(fid);
fclose(fid)
即能逐行读入整个文本文件。

不过,上述方法有可能出现无限循环,原因可能是没有正确识别文件终止符;并且字符串前可能多出"?". 经测试,native2unicode命令可解决此问题。以下代码能够正确输出整个文件并终止:
fid=fopen('filename','r+','n','utf-8');
tline=fgetl(fid);
tline=native2unicode(tline);
while tline
    tline=fgetl(fid);
    tline = native2unicode(tline);
    disp(tline);
end
fclose(fid);

更多测试或细节待补充。

补充1:将permission设置为'r+'并不能识别未知编码的文本文件。对于未知编码的文件,一个简单的方法是利用记事本打开,然后另存为。。。,选择utf-8编码,即可保证保存与读取的编码统一。

补充2:看到一段:(中文)Windows系统默认字符编码是GBK(称为系统内码),所有的文字都使用GBK显示!保存的时候将按选择的字符编码进行编码转换(系统内嘛-->指定编码)。复制的时候所有的文字编码也都是系统内码。

补充3:fopen所支持的编码列表:http://www.mathworks.se/help/matlab/ref/fopen.html#inputarg_encodingIn

matlab处理中文路径相关推荐

  1. Matlab for Mac 中文路径乱码解决

    2019独角兽企业重金招聘Python工程师标准>>> matlabroot /bin下有支持语言的编码文件(language code) lcdata.xml和lcdata_utf ...

  2. matlab解决中文显示乱码

    matlab很多函数在读取中文后显示乱码,为了显示中文,应改为UTF-8方式或其他支持中文的编码方式,这在Matlab中的操作为: slCharacterEncoding('UTF-8') 但是执行这 ...

  3. 使GDAL库支持中文路径或中文文件名的处理方法

    之前生成的gdal 2.1.1动态库,在通过命令行执行时,遇到有中文路径或中文图像名时,GDALOpen函数不能正确的被调用,如下图: 解决方法: 1.      在所有使用GDALAllRegist ...

  4. 解决:VS 2005/2008 中 fstream 不能处理带有中文路径的问题

    转自:http://blog.csdn.net/code_robot/archive/2010/06/23/5688867.aspx 有时候用ifstream或ofstream打开带有中文路径的文件会 ...

  5. opencv_python使用cv2.imread()读取中文路径,cv2.imwrite()把图片写入中文路径。

    opencv_python使用cv2.imread()读取中文路径,cv2.imwrite()把图片写入中文路径 定义函数: cv2_imread(path)代替cv2.imread() cv2_im ...

  6. cv2.imread 中文路径返回null

    经过测试,发现cv2.imread读取图片,路径中有中文,则返回null cv2.imread 中文路径返回null 这个方法还没试: file = askopenfilename() im2 = c ...

  7. delphi使用sqlite数据库时的中文路径问题

    https://blog.csdn.net/yuehaiyang/article/details/4184198 如果数据库所在的路径是中文路径的话,根本运行不起来,会报错,因为sqlite用的是ut ...

  8. 注册DirectShow filter时应该注意中文路径

    注册DirectShow filter时应该注意中文路径 2010-01-15 16:39:57|  分类: C++|字号 订阅 昨天封装了一个DirectShow Source Filter,使用R ...

  9. Python 图像处理篇-利用opencv库和numpy库读取包含中文路径下的本地图片实例演示

    很简单,只要用 numpy 把图片解码一下就好了. import cv2 import numpy as np# img = cv2.imread("小爱.jpg") # 直接读取 ...

最新文章

  1. Eclipse create git repository failure(egit)
  2. python自带的shell是什么-python的shell是什么
  3. STM32学习之路-感觉自己走到了一个天大的坑里了!
  4. 最大似然估计_R初等统计分析(一)——概率分布、最大似然估计
  5. easyui怎样实现textarea
  6. CSS中调用JS函数和变量
  7. 安全问题汇总(二) SlowHttp 慢速攻击防护
  8. JZOJ 1036. 【SCOI2009】迷路
  9. java nio书籍_《Java NIO》这本书
  10. MyBatis-plus执行自定义SQL
  11. python读取txt文档乱码解决
  12. 华为路由器命令手册_用数据说话,华为路由Q2 Pro与网件R7800对比测评
  13. Python爬虫——新浪微博(网页版)
  14. 制作mac os x lion启动盘
  15. html+CSS让背景图片充满整个屏幕
  16. 百家姓和名称正则匹配
  17. gridControl自动增加行添加数据
  18. 数组的定义、初始化和使用
  19. 使用openssl 转换pkcs12证书为pem格式
  20. MySQL字符集及配置

热门文章

  1. php输出二维数组中指定内容,HP将MYSQL内容读到二维数组并按指定列输出
  2. 我的世界java版forge怎么用_我的世界电脑版MOD怎么用 我的世界pc版forge怎么安装...
  3. linux把2块盘挂到一个分区,linux系统如何挂载第二块硬盘
  4. node中间件mysql_nodejs 中使用mysql数据有没有类似 mongoose 的中间件?
  5. 你以后会不会有小三?
  6. 面对女人的喋喋不休时,男人内心的真实想法
  7. 不好意思,爱因斯坦这次,又对了!
  8. 中国癌症大数据出来了!每年126万例癌症死亡本可避免
  9. c++ 与 java_Java与C++比较
  10. android vcard解析代码,Android使用vcard文件的方法简单实例