Skip to content

Commit

Permalink
Update README
Browse files Browse the repository at this point in the history
  • Loading branch information
yunkya2 committed Mar 23, 2023
1 parent e506e26 commit 27108d3
Showing 1 changed file with 27 additions and 0 deletions.
27 changes: 27 additions & 0 deletions ports/x68k/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -292,6 +292,33 @@ MicroPython向けLチカのコードをそのままX680x0版で動かすため
# ここからは割り込み許可
```

## 日本語文字列の扱い

`str` クラスでの日本語文字列の扱いに対応しています。
オリジナルのMicroPythonは文字列を内部的にUTF-8で扱っていますが、X680x0の文字コードはシフトJISなので、文字列の内部処理に手を入れてシフトJISのまま扱うようになっています。

このため、Python文字列内のエスケープシーケンス '\uXXXX' はUnicodeではなくシフトJISのコード番号を指定します。

`str`オブジェクトと`bytes`/`bytearray`オブジェクトでは日本語文字列を代入したときの扱いが異なります。`str`オブジェクトは多バイト文字を文字単位で扱いますが、`bytes`/`bytearray`オブジェクトではバイトの並びとして扱います。

```
>>> a=str('日本語','') # strオブジェクトを作成
>>> a
'\u93fa\u967b\u8cea'
>>> len(a) # 文字数は3文字
3
>>> print(a)
日本語
>>> b=bytes('日本語','') # bytesオブジェクトを作成
>>> b
b'\x93\xfa\x96{\x8c\xea'
>>> len(6) # 6バイト
6
>>> print(b)
b'\x93\xfa\x96{\x8c\xea'
```

## インラインアセンブラ

MicroPythonのインラインアセンブラ機能をサポートしています。
Expand Down

0 comments on commit 27108d3

Please # to comment.