Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

Unicode と ASCII の値

MATLAB® は、あらゆる文字が数値コード値によって表される UTF-16 エンコードを使用して、すべての文字を Unicode® 文字として保存します(Unicode には最初の 128 個の記号として ASCII 文字セットが組み込まれているため、ASCII 文字は Unicode と ASCII で同じ数値コードをもちます)。文字配列と string 配列の両方でこのエンコードが使用されます。さまざまな数値変換関数を使用することにより、文字をその数値コード値に変換できます。関数charを使用すると、数値を文字に変換できます。

文字の数値コード値への変換

文字を、その Unicode コード値を表す整数に変換できます。単一の文字または文字配列を変換するには、次のいずれかの関数を使用します。

  • double

  • uint16uint32またはuint64

ベスト プラクティスは、関数doubleを使用することです。ただし、数値を整数として保存する必要がある場合は、少なくとも 16 ビットをもつ符号なし整数を使用します。これは、MATLAB が UTF-16 エンコードを使用するからです。

関数doubleを使用して、文字ベクトルを Unicode コード値に変換します。

C ='MATLAB'
C = 'MATLAB'
unicodeValues = double(C)
unicodeValues =1×677 65 84 76 65 66

string 配列内の文字を Unicode コード値に直接変換することはできません。特に、関数doubleは、関数str2doubleと同様に、string をそれが表す数値に変換します。doubleは、string を数値に変換できない場合、NaN値を返します。

str ="MATLAB"; double(str)
ans = NaN

string 内の文字を変換するには、まず string を文字ベクトルに変換するか、中かっこを使用して文字を抽出します。次に、doubleのような関数を使用して文字を変換します。

C = char(str); unicodeValues = double(C)
unicodeValues =1×677 65 84 76 65 66

数値コード値の文字への変換

関数charを使用すると、Unicode 値を文字に変換できます。

D = [77 65 84 76 65 66]
D =1×677 65 84 76 65 66
C = char(D)
C = 'MATLAB'

charの典型的な用途は、入力できない文字を作成して string に追加することです。たとえば、度記号の文字を作成し、それを string に追加します。度記号の Unicode コード値は 176 です。

deg = char(176)
deg = '°'
myLabel = append("Current temperature is 21",deg,"C")
myLabel = "Current temperature is 21°C"

文字とコード値の間のマッピングを含む Unicode の詳細については、Unicodeを参照してください。

参考

|||||||||||

関連するトピック

外部のWebサイト