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

double(<character>) gives different result in MATLAB and Octave

MATLAB (documentation):

>> double('α')    
ans =    
   945

八度 4.0.0,Ubuntu16.04 (documentation):

>> double('α')
ans =    
   206   177

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

注意: 'α' 是希腊语小写 alpha。

这是因为 MATLAB 中的默认编码是 'US-ASCII'(根据 Locale settings 可能不同),而在 Octave 中,它是 'UTF-8'.

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

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

ans =

  1×2 uint8 row vector

   206   177

您可以使用 featureslCharacterEncoding() 检查您的编码:

feature('DefaultCharacterSet')

slCharacterEncoding() 

根据 Mathworks,您可以 change your encoding 使用:

slCharacterEncoding(encoding)

我在更改编码和之后获得相同结果方面运气不佳。这可能是一个错误。