新元号　令和（れいわ）の文字コードについて

# 「令」の文字コードに関して

2019年4月1日、新元号「令和（れいわ）」が発表された。
しかし、**「令」**という字体を表すUnicodeは2つあるため、詳細をまとめる。

## 結論

**元号に通常使用される、使用すべきなのは「U+4EE4」であり、基本的に日本語フォントに存在するのも「U+4EE4」である。**

「U+F9A8」は、韓国語の等音法則に起因する文字である（韓国の文字コード規格KS X 1001との往復変換を可能にするために追加された文字）。元号には、Unicodeへの収録意図からも使うべきではない。

システム構築上知っておくべきことであり、以下に当てはまる場合には注意する必要が出てくると思われる。

過度に神経質になることではないが、抑えておくべき情報と考える。

### 問題となりそうな状況

- 日本以外の会社に外注、または最終的な下請けがある場合、``U+F9A8``を埋め込まれていないかの確認が必要
- ブラウザなどグローバルに使用されるアプリでの文字検索
- 手書きOCRで違うUnicodeとしてアサインされるということがあり得る（令和は2つの文字コードを持つ年号ということを考えた設計が必要）
- Webクローラ等の文字入力部分

### 2019年4月13日追記

#### 経産省情報

- [改元に伴う企業等の情報システム改修等への対応](https://www.meti.go.jp/policy/it_policy/kaigen/kaigen_taiou.html)
    - [新元号名で使用する文字コードについて（周知）（平成３１年４月５日経済産業省事務連絡）平成31年4月5日掲載](https://www.meti.go.jp/policy/it_policy/kaigen/20190405_kaigen_code.pdf)
    - [よくご質問頂く事項（FAQ）について](https://www.meti.go.jp/policy/it_policy/kaigen/faq.html)

## 文字コード

### U+4EE4

- https://www.compart.com/en/unicode/U+4EE4
- CJK統合漢字
- CP932（IBM拡張漢字）に由来する互換漢字**である** 
- .NET FrameworkでShift-JISに変換できる（0x97DF）

### U+F9A8

- https://www.compart.com/en/unicode/U+F9A8
- CJK互換漢字
- CP932（IBM拡張漢字）に由来する互換漢字**ではない**
- .NET FrameworkでShift-JISに変換できない


## 文字入力

### Windows 10 1809 17763.379 IME

#### 通常の文字入力

- 「れいわ」として入力すると、「U+4EE4」が選択される。

#### IMEパッド - 手書き

- 「U+4EE4」が選択される。

<img width="448" alt="スクリーンショット (5).png" src="https://qiita-image-store.s3.amazonaws.com/0/204150/1fe64eb9-81a4-92e2-7c38-8b419b77fcc3.png">

#### IMEパッド - 文字一覧

- 「U+4EE4」、「U+F9A8」どちらも入力可能

## フォント

Windows 10 上のワードパッドで選択されるフォントについて記載。

あくまで、以下に記載する特定の条件・操作での動作を記載したものであることに注意。

### 条件・操作

1. Windows 10 1809 17763.379 でワードパッドを新規に起動
2. フォントとして「ＭＳ 明朝」が指定された状態
3. メモ帳からそれぞれの文字を張り付ける。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/204150/3af63b00-ec72-115b-223f-80150357f49e.png)


### U+4EE4

![image.png](https://qiita-image-store.s3.amazonaws.com/0/204150/dc02e781-fe30-2f76-b268-c12a29124745.png)

- ＭＳ 明朝

### U+F9A8

![image.png](https://qiita-image-store.s3.amazonaws.com/0/204150/c18eb1e3-1853-cba6-7998-e777c8c401fd.png)

- Malgun Gothic（[ハングルの書体](https://ja.wikipedia.org/wiki/ハングルの書体)）

## Windows 10 IMEパッド

### U+4EE4

<img width="1055" alt="4EE4.png" src="https://qiita-image-store.s3.amazonaws.com/0/204150/dc90c6c8-4e8d-a523-ffbe-5743f0a05087.png">

### U+F9A8

<img width="1058" alt="F9A4.png" src="https://qiita-image-store.s3.amazonaws.com/0/204150/5df9bb8f-b075-c53c-7947-759f7a752dc0.png">


## 対策が必要な場合（正規化関数）

対策として、ユニコードが扱える環境であれば、正規化関数を使うとよい。CJK互換漢字は、対応するCJK統合漢字と[正準等価](https://ja.wikipedia.org/wiki/Unicodeの等価性#正準等価)なので、正規化することで、CJK統合漢字に変換される。

### JavaScript

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/normalize

### .NET

https://docs.microsoft.com/ja-jp/dotnet/api/system.string.normalize?view=netframework-4.7.2

### Java

https://docs.oracle.com/javase/jp/8/docs/api/java/text/Normalizer.html
https://qiita.com/yamadamn/items/56e7370bae2ceaec55d5#%E5%AE%9F%E8%A1%8C%E4%BE%8B


## 補足

### 異体字セレクタ

CJK統合漢字の令(U+4EE4)とCJK互換漢字の令(U+F9A8)以外に、異字体セレクタの令︀(U+4EE4 U+FE00) 令󠄀(U+4EE4 U+E0100) 令󠄁(U+4EE4 U+E0101) 令󠄂(U+4EE4 U+E0102)があるので留意すること。

サロゲートペアってなんでコワイの
https://qiita.com/wingsys/items/81d46451d8b93ab065de

異体字セレクタってなあに
https://qiita.com/wingsys/items/ca0d791b585475ba2052

### 文字判別

ワードパッドなどでリッチテキストエディットコントロールで文字を選択し、Alt+Xを入力することで、文字→文字コード、文字コード→文字へ変換できる

### 合字について

新元号「令和」の合字は、符号位置：``U+32FF`` に割り当てられている。シフトJISへの対応は行われないため、新元号の合字を使う場合、Unicodeを使う必要がある

---

### リソース

CJK互換漢字とは？新元号「令和」の「令」Unicode符号に注意！ ? cod-log
https://cod-sushi.com/unicode-rei/

【苦しんで覚える新元号】UTF-8の令和のデータ表現は2種類ある。
https://qiita.com/Gaccho/items/b5018e463ccb24df156b

新元号（平成の次の元号）対応におけるMicrosoftのセミナー「新元号とマイクロソフト製品における対応」を受けてきました
https://qiita.com/You_name_is_YU/items/3f6f9825c2d1c97c5ea6

Adobe Fontsの日本語フォントの #新元号 「令和」の合字への対応について
https://blogs.adobe.com/japan/adobefonts-adobe-support-ligatures-of-new-era-names/

[経産省主催セミナー](http://www.meti.go.jp/press/2018/02/20190207002/20190207002.html)　日本マイクロソフト株式会社からの資料
http://www.meti.go.jp/press/2018/02/20190207002/20190207002-5.pdf