[3] [DFN[UTS #46]] [DFN[Unicode IDNA Compatibility Processing]]
([DFN[Unicode IDNA 互換性処理]]) は、 [[IDNA2003]] との互換性を保持しつつも
[[IDNA2008]] と整合性のある処理を行う方法 (を定めた仕様書) です。
[[IDNA2008]] は [[IDNA2003]] から極めて非互換に変更が加えられており、
単純に置き換えるだけでは既存の実装や[[文書]]との互換性を喪失してしまいますが、
Unicode IDNA 互換性処理は [[IDNA2003]] と [[IDNA2008]] 
を組み合わせたような仕様となっており、それによって互換性を保ちつつ [[IDNA2008]]
へと移行してゆけるようになっています。

* 仕様書

- [2] [CITE@en-us[UTS #46: Unicode IDNA Compatibility Processing]] ([TIME[2010-10-30 01:01:25 +09:00]] 版) <http://www.unicode.org/reports/tr46/>

* 算法

[4] [[UTS #46]] では次の[[算法]]が規定されています。

- [[Unicode IDNA互換性処理]]
-- [[移行的処理]]
-- [[非移行的処理]]
- [[ToASCII]] → 内部で [[Unicode IDNA互換性処理]]を呼び出す
- [[ToUnicode]] → 内部で[[非移行的処理]]を呼び出す
- [[IDNA2008前処理]] → 内部で [[ToUnicode]] を呼び出す

;; [5] [[Unicode IDNA互換性処理]]の[[非移行的処理]]、[[ToUnicode]]、[[IDNA2008]]
は実質的に同じです。

* 表

[6] [[UTS #46]] は次の表を定義しており、 [[Unicode IDNA互換性処理]]で使われています。

- [[IDNA写像表]]

* テスト・ケース

[10] [CITE@en-us[UTS #46: Unicode IDNA Compatibility Processing]] ([TIME[2010-10-30 01:01:25 +09:00]] 版) <http://www.unicode.org/reports/tr46/#Conformance_Testing>

* デモ

[9] [CITE@en-us[Unicode Utilities: Internationalized Domain Names (IDN)]] ([TIME[2011-04-03 19:32:37 +09:00]] 版) <http://unicode.org/cldr/utility/idna.jsp>

[8] [[IDNA2003]]、[[UTS #46]]、[[IDNA2008]] の比較が <http://www.unicode.org/reports/tr46/#IDNAComparison> にあります。
[[UTS #46]] は [[IDNA2003]] と [[IDNA2008]] の中間の結果が得られるようになっています。

* 歴史

[7] [[IETF]] の糞仕様の尻拭いお疲れ様ですwwwwwwwwww
[[IDNA2008]] とは違って実装に必要な情報が豊富で参考になりますwwww

[1] [CITE@en-us[FAQ - International Domain Names (IDN)]]
( ([TIME[2010-10-14 08:53:42 +09:00]] 版))
<http://www.unicode.org/faq/idn.html>
がとても参考になります。


[11] [CITE@en[IDNA / UTS #46 "should" requirements · Issue #110 · whatwg/url]]
( ([TIME[2016-05-10 20:30:49 +09:00]]))
<https://github.com/whatwg/url/issues/110>

[12] [CITE@en[479520 – (IDNA2008) Implement IDNA2008 and Unicode UTS #46]]
( ([TIME[2016-05-10 20:32:05 +09:00]]))
<https://bugzilla.mozilla.org/show_bug.cgi?id=479520>

[13] [CITE@en[1218179 – Flip the switch from transitional to non-transitional IDNA2008 processing]]
( ([TIME[2016-05-10 20:36:52 +09:00]]))
<https://bugzilla.mozilla.org/show_bug.cgi?id=1218179>

[14] [CITE@en[1255188 – Get other UAs to switch to non-transitional IDNA]]
( ([TIME[2016-05-10 20:37:18 +09:00]]))
<https://bugzilla.mozilla.org/show_bug.cgi?id=1255188>

[15] [CITE[Edge should switch to non-transitional mode '''['''IDNA''']''' | Microsoft Connect]]
( ([TIME[2016-05-10 20:37:49 +09:00]]))
<https://connect.microsoft.com/IE/feedbackdetail/view/2454230/edge-should-switch-to-non-transitional-mode-idna>

[16] [CITE@en-US[EdgeHTML issue - Edge should switch to non-transitional mode '''['''IDNA''']''']]
( ([TIME[2016-05-10 20:38:06 +09:00]]))
<https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/6818768/>

[17] [CITE@en[Issue 505262 - chromium - Support IDNA 2008: "ß" and "ss" are not working - Monorail]]
( ([TIME[2016-05-10 20:39:58 +09:00]]))
<https://bugs.chromium.org/p/chromium/issues/detail?id=505262>

[18] [CITE@en[Issue 303404 - chromium - IDNA : Review the need to allow ZWJ/ZWNJ with ContextJ rules. - Monorail]]
( ([TIME[2016-05-10 20:40:35 +09:00]]))
<https://bugs.chromium.org/p/chromium/issues/detail?id=303404>

[19] [CITE@en[Issue 303407 - chromium - IDNA: Review the need to allow final sigma (Greek) - Monorail]]
( ([TIME[2016-05-10 20:41:02 +09:00]]))
<https://bugs.chromium.org/p/chromium/issues/detail?id=303407>

[20] [CITE@en[Issue 61328 - chromium - Support IDNA 2008 (with some transitional behavior as found in UTS 46) - Monorail]]
( ([TIME[2016-05-10 20:42:49 +09:00]]))
<https://bugs.chromium.org/p/chromium/issues/detail?id=61328>


[21] [CITE@ja[UTC #179 properties feedback & recommendations - 24064-utc179-properties-recs.pdf]], [TIME[2024-04-16T21:04:46.000Z]], [TIME[2024-05-01T05:10:22.970Z]] <https://www.unicode.org/L2/L2024/24064-utc179-properties-recs.pdf#page=42>


