2

Lua が文字列に使用するエンコーディングがわかりません。

使用しています

string.byte (s [, i [, j]])

ドキュメントを持っている

文字 s[i]、s[i+1]、…、s[j] の内部数値コードを返します。i のデフォルト値は 1 です。j のデフォルト値は i です。 数値コードは必ずしもプラットフォーム間で移植可能であるとは限らないことに注意してください

人々の周りを読むと、ASCIIを使用していることがわかります-これは私にとっては問題ありません-しかし、プラットフォーム間での変更は得られません-単一のエンコーディング(ASCIIなど)を使用することの本質は、これが起こらないことだと思いました-または、これを単にASCII は 126 (または 127) 以上を定義していないため、さまざまな国/OEM/OS などで数十年前のカスタム ASCII 拡張を上位範囲に使用している可能性があります。

[a-zA-Z] は、実行中のすべてのプラットフォームで同じ char 値を持つことを知っておくことが重要です。

Lua doc は、ここでもう少し具体的になる可能性があります!

誰もがこれに当てることができる光は素晴らしいでしょうthx

4

1 に答える 1

4

ASCII から派生したエンコーディングを安全に想定できると確信しています。したがって、関心のあるごくわずかな文字セットは同じままです。

プラットフォーム間でのコードの変更に関する注記は、Lua が文字エンコーディングについてまったく認識していないため、OS が配布したバイトをそのまま使用していることを意味している可能性があります。Linux では、これはおそらく UTF-8 です。つまり、ASCII の外に出るときは、個々のコード単位を処理する必要があります。Windows では、システムの従来のコードページであると想像できます。これは、西洋世界の多くで一種の Latin 1 (CP 1252) を意味します。

于 2013-07-26T11:28:33.777 に答える