Skip to content

OTR_CharacterEncoding

nishi_74322014 edited this page Oct 27, 2026 · 1 revision

文字コード・エンコーディング

  • TOP > 使い方 > 文字コード・エンコーディング

概要

文字コード・エンコーディング・キャラクタ・セットの設計の基本。

  • .NET の文字列は内部が UTF-16、外部の既定は UTF-8。現在は、入口から出口まで UTF-8 / Unicode で統一するのが基本。
  • 異なる文字コードと連携するときだけ変換が要る。可逆に変換できるかを検証する(外字・機種依存文字は化ける、欠落する)。

詳細

Open 棟梁の文字チェック部品(Public.Str)

部品 用途
StringChecker.IsInCodePage(input, codePage) 指定のコードページで可逆か(その文字集合に収まるか)
StringChecker.IsShift_Jis(input) Shift_JIS で可逆か
JIS2k4Checker.CheckSurrogatesPairChar サロゲート・ペア(絵文字、第 3・第 4 水準漢字の一部)を含むかを検出
JIS2k4Checker.DeleteSurrogatesPairChar サロゲート・ペアを除去・置換

JIS の水準

  • JIS X 0208(第 1・第 2 水準)、JIS X 0212(補助漢字)、JIS X 0213・JIS2004(第 3・第 4 水準。一部はサロゲート・ペア)。
  • 扱う水準を決めて、DB・画面・帳票・外部連携で揃える。 どこか 1 つが対応していないと、化け・欠落・例外になる。

各所の設定

対象 方針
Web <meta charset="utf-8"> + UTF-8 のレスポンス
SQL 定義ファイル 設定 FxSqlEncoding
DB SQL Server は nvarchar、MySQL は utf8mb4(utf8 は 3 バイトで絵文字が入らない)
ソースとビュー .cs / .vb / .cshtml / .aspx / .master は UTF-8 BOM 付き(コメント規約)
  • HTML を Shift_JIS にすると、表現できない文字は数値文字参照に変換される。

設計時に決めること

  • 全体を UTF-8 / Unicode で統一するか。
  • 入力の文字集合を検証するか(Shift_JIS 互換が要るなら IsShift_Jis など)。
  • サロゲート・ペアを許可するか(許可するなら DB を nvarchar / utf8mb4 に。許可しないなら検出して拒否・置換)。

コーディング・エージェントに任せる場合

  • スキル opentouryo-app-design(references/character-encoding.md)を使わせる。
  • エージェントのファイル書き込みは通常 BOM 無しなので、BOM の付与を機械的に確認させる。

参考


Tags: 再構築

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki
開発基盤部会 Wiki

移行管理: DONE / TODO

Clone this wiki locally