double(<character>)在MATLAB和Octave中给出不同的结果

Fer*_*dox 9 matlab octave

MATLAB(文档):

>> double('?')    
ans =    
   945
Run Code Online (Sandbox Code Playgroud)

Octave 4.0.0,Ubuntu 16.04(文档):

>> double('?')
ans =    
   206   177
Run Code Online (Sandbox Code Playgroud)

为什么我会得到不同的结果?

注意:'α'是希腊小写字母alpha.

Sar*_*ama 12

这是因为MATLAB中的默认编码'US-ASCII'(可能因Locale设置而异),而在Octave中则是'UTF-8'.

为了确认,这是MATLAB的结果:

>> unicode2native('?', 'UTF-8')

ans =

  1×2 uint8 row vector

   206   177
Run Code Online (Sandbox Code Playgroud)

您可以使用feature或检查编码slCharacterEncoding():

feature('DefaultCharacterSet')
Run Code Online (Sandbox Code Playgroud)

要么

slCharacterEncoding() 
Run Code Online (Sandbox Code Playgroud)

根据Mathworks,您可以使用以下命令更改编码:

slCharacterEncoding(encoding)
Run Code Online (Sandbox Code Playgroud)

我没有太多运气来改变编码并获得相同的结果.这可能是一个错误.