【问题标题】:Read non-ASCII MS Access database (Punjabi text using Gurmukhi (ਗੁਰਮੁਖੀ) alphabet) in MATLAB在 MATLAB 中读取非 ASCII MS Access 数据库(使用 Gurmukhi (ਗੁਰਮੁਖੀ) 字母表的旁遮普语文本)
【发布时间】:2015-07-15 16:11:00
【问题描述】:

我有一个 Microsoft Access 数据库,其中包含使用 Gurmukhi (ਗੁਰਮੁਖੀ) 脚本的旁遮普语列。当我在 MATLAB 中读取数据库时,旁遮普语单词显示为 ?????

如何正确读取数据? 这是代码:

slCharacterEncoding('UTF-8');

setdbprefs('DataReturnFormat', 'cellarray');

setdbprefs('NullNumberRead', 'NaN');

setdbprefs('NullStringRead', 'null');

%Make connection to database. Note that the password has been omitted. 

conn = database('Punjabi', '', '');

%Read data from database. 


curs = exec(conn, ['SELECT DICWEB2.ID'... ' ,   DICWEB2.gur'...

    ' , DICWEB2.Meaning'...
    ' , DICWEB2.Shah'...
    ' , DICWEB2.Type'...
    ' , DICWEB2.sFile'...
    ' FROM  DICWEB2 ']);
curs = fetch(curs);
close(curs);

%Assign data to output variable


Pun1 = curs.Data;

%Close database connection.

close(conn);

%Clear variables

clear curs conn

【问题讨论】:

  • 如果在加载数据库之前使用这个命令会怎样:feature('DefaultCharacterSet', 'UTF8')?
  • 你知道数据中使用的编码吗?它是 Unicode 编码之一,可能是UTF8UTF16?或者它是带有旁遮普语特定代码页的 8 位 ASCII 码?
  • 我不知道这对解决方案是否重要。 (如果涉及代码页,则可能。) ... Gurmukhi (ਗੁਰਮੁਖੀ) alphabet or Shahmukhi (شاہ مکھی) alphabet 中的数据是否? (抱歉,粘贴时 by Browser 似乎丢弃了 RTL 控制字符。)
  • @das-g 数据是gurmukhi格式。
  • 呃,编辑你的问题,把代码放在那里,拜托。在评论中它不是很清晰,因为所有换行符都丢失了。

标签: matlab ms-access character-encoding non-ascii-characters


【解决方案1】:

波斯语语言也有类似的问题。很简单:

  1. 转到 控制面板 > 区域 > 管理 并更改 非 unicode 程序的语言
  2. 选择测试版:使用 Unicode UTF-8 获得全球语言支持
  3. 在 Matlab 中运行 feature('DefaultCharacterSet', 'UTF-8');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-26
    相关资源
    最近更新 更多