掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
WideStringはどのようにバイトを処理しているのですか? (ID:17809)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
理解できていません…。 WideStringは、 半角・全角全ての文字を内部で2バイトで扱うので、 全角文字を2バイトで一文字と処理しなくてもよいというくらいしか… 「便利だなぁ」くらいしか考えていませんでした。 ヘルプを見て調べてみました。 この理解であっているかチェックしてもらえますか? --- 以下、WideStringとStringの違い --- AnsiChar と WideChar が基本文字型です。 「String」 1.AnsiChar(1バイト)が基本文字型 2.拡張ASCII文字セットに従って順序付け 「WideString」 1.WideChar(1ワード=2バイト)が基本文字列型 2.Unicode 文字セットに従って順序付け 3.Unicode の先頭から 256 文字が ANSI 文字に対応 WideStringの3.の特長から、 半角・全角を区別せず、文字単位での処理が可能 以下の例では、「abc/」はANSI文字に対応しているので、 Stringでの処理と同じバイトコードを表示 「あいう」は、ANSI文字対応でないので Unicode文字セットの位置を表示している。 --- サンプル --- ws := 'abcあいう/'; //WideString for i := 1 to Length(ws) do ShowMessage('ws['+IntToStr(i)+'] = '+ InttoHex(Ord(ws[i]),1)); --- 実行結果 --- ws[1] = 61 //ANSIに対応 ws[2] = 62 //ANSIに対応 ws[3] = 3042 //Unicode文字セットの位置 ws[4] = 3044 //Unicode文字セットの位置 ws[5] = 3046 //Unicode文字セットの位置 ws[6] = 2F //ANSIに対応
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.