- macosxの改行コードは複雑で、CRとLFとその他が混在するようだ。大変。
Unicode
- Grapheme Cluster
- legacy grapheme cluster と extended grapheme cluster がある
- legacy grapheme cluster は互換性のためなので、通常は、extended grapheme cluster を使えば良い。
結合文字列 Combining Character Sequence
コードポイント
- utf8
- utf16
- utf32
今の理解: utf8やutf16のコードユニットの列→(utf32==コードポイントの列)→(結合文字列==Grapheme Cluster)の列
BOM
サロゲートペア surrogate pairs utf16の2つで1つのコードポイントを表す
Unicodeの用語: http://www.unicode.org/glossary/
Cocoaのstring objects(NSString系)はutf16基準。 character = “16-bit platform-endian UTF-16”
Shift JIS, CP932, Windows-31J(MS932), JIS X 0208
https://qiita.com/kasei-san/items/cfb993786153231e5413
-
1文字とは何か。数え方
- byte(octet)
- コードユニット
- Unicode code point
- 書記素クラスタ
-
Java/ScalaのUnicodeエスケープで改行ではないが改行を意味するシーケンスを入れることができる
-
Unicodeに含まれる特殊な改行が問題を起こすリスクがある
- U+2028 LINE SEPARATOR (行分割子) U+2029 PARAGRAPH SEPARATOR (段落分割子)など
- こちらもセキュリティリスクがあるはず
- https://scrapbox.io/bbr-program-memo/U+2028とU+2029の取り扱い
-
埼玉の「玉」には色々あり、問題が生じるリスクがある。
-
MJ