* RFC における規定

[FIG[
[FIGCAPTION[
[1] [CITE@en[RFC 1459 - Internet Relay Chat Protocol]] ([TIME[2014-03-28 11:47:07 +09:00]] 版) <http://tools.ietf.org/html/rfc1459.html#section-2.2>
]FIGCAPTION]

> Because of IRC's scandanavian origin, the characters {}| are
considered to be the lower case equivalents of the characters []\,
respectively. This is a critical issue when determining the
equivalence of two nicknames.
]FIG]

[FIG[
[FIGCAPTION[
[2] [CITE@en[RFC 2812 - Internet Relay Chat: Client Protocol]] ([TIME[2014-03-19 19:49:44 +09:00]] 版) <http://tools.ietf.org/html/rfc2812#section-2.2>
]FIGCAPTION]

> Because of IRC's Scandinavian origin, the characters {}|^ are
considered to be the lower case equivalents of the characters []\~,
respectively. This is a critical issue when determining the
equivalence of two nicknames or channel names.
]FIG]

[FIG[
[FIGCAPTION[
[3] [CITE@en[RFC 2813 - Internet Relay Chat: Server Protocol]] ([TIME[2014-03-08 23:19:56 +09:00]] 版) <http://tools.ietf.org/html/rfc2813#section-3.2>
]FIGCAPTION]

> Because of IRC's Scandinavian origin, the characters {}|^ are
considered to be the lower case equivalents of the characters []\~,
respectively. This is a critical issue when determining the
equivalence of two nicknames, or channel names.
]FIG]

* [CODE@en[CASEMAPPING]]

[7] [[IRC]] のプロトコルの拡張である [DFN[[CODE@en[[[CASEMAPPING]]]]]] [SRC[>>6]] を使うと、
[[大文字]]と[[小文字]]の区別をどのように行うか指定できます。

[REFS[
- [6] [CITE@en[draft-brocklesby-irc-isupport-03 - IRC RPL_ISUPPORT Numeric Definition]] ([TIME[2014-01-05 15:53:34 +09:00]] 版) <https://tools.ietf.org/html/draft-brocklesby-irc-isupport-03#section-3.1>
]REFS]

[8] [[RFC]] には含まれていませんが、しばしば実装されているようです。

[9] [[大文字]]と[[小文字]]の等価性の種類として、次の3種類が定義されています。

:[10] [DFN[[CODE@en[[[ascii]]]]]]: [[ASCII大文字・小文字不区別]]
:[11] [DFN[[CODE@en[[[rfc1459]]]]]]: [CODE@en[[[ascii]]]] に加えて [CODE(char)[[[{]]]],
[CODE(char)[[[|]]]], [CODE(char)[[[}]]]], [CODE(char)[[[~]]]] をそれぞれ
[CODE(char)[[['''[''']]]], [CODE(char)[[[\]]]], [CODE(char)[[[''']''']]]],
[CODE(char)[[[^]]]] に対応付ける
:[12] [DFN[[CODE@en[[[strict-rfc1459]]]]]]: [CODE@en[[[ascii]]]] に加えて [CODE(char)[[[{]]]],
[CODE(char)[[[|]]]], [CODE(char)[[[}]]]] をそれぞれ
[CODE(char)[[['''[''']]]], [CODE(char)[[[\]]]], [CODE(char)[[[''']''']]]] に対応付ける

[13] [CODE(char)[[[rfc1459]]]] は [[RFC 2812]], [[RFC 2813]] と一致しており、
[CODE(char)[[[strict-rfc1459]]]] は [[RFC 1459]] と一致しています。既定値は
[CODE(char)[[[rfc1459]]]] とされています。実際には [CODE(char)[[[rfc1459]]]] 相当のものが用いられており、
[[RFC 1459]] の記述が間違っていたようです。

* 実装

[REFS[
- [4] [CITE@en[Internet Relay Chat - Wikipedia, the free encyclopedia]] ([TIME[2014-03-30 01:52:54 +09:00]] 版) <http://en.wikipedia.org/wiki/Internet_Relay_Chat#Character_encoding>
]REFS]

[5] >>4 によると90年代後期に [[ISO/IEC 646の版]]から [[ISO-8859-1]] に移行しはじめてから記号についての同一視をしない実装がでてきたようです。

* メモ

[14] [CITE@ja[RFC から読めない IRC]], [TIME[2021-04-13T03:41:58.000Z]] <https://yoshino.tripod.com/73th/data/irccode.htm#japaneseproblem_case1>