Removing Digraphs

Document number:
P4235R1
Date:
2026-10-9
Audience:
EWG
CWG
Project:
ISO/IEC 14882 Programming Languages — C++, ISO/IEC JTC1/SC22/WG21
Reply-to:
Matthias Wippich <wippich@ieee.org>

This paper proposes removal of digraphs.

0.1

R1 October 2026

0.2

R0 September 2026

1

Introduction

2

History

2.1

Timeline

3

Design Space

3.1

Splicers

3.2

Interpolated string literals

4

Affected encodings

5

Usage Analysis

6

Compatibility

7

Alternatives to full digraph removal

7.1

Use _Pragma("...") where available

7.2

Partially remove digraphs

7.3

Partially reintroduce trigraphs

7.4

Introduce another alternative spelling for #pragma

7.5

Deprecate digraphs first

8

Wording

9

Acknowledgements

10

References

11

Appendix: Tables of affected encodings

11.1

Basic Character Set representability

11.2

#pragma analysis

Revision history

0.1. R1 October 2026

0.2. R0 September 2026

Original version of the paper.

1. Introduction

Digraphs are a complicated solution to a very old problem, which cause more problems than they solve in a modern environment. Digraphs also severely limit the design space of C++, although as we have seen with [P2996] we are already fine with special-casing our way out of this pickle.

This however leads to a rather unfortunate situation. If you need to use a source encoding that requires use of digraphs, you cannot use all of C++26 directly, resulting in a fragmented and needlessly complex language. Some parts you can use if you require certain digraphs, some you don't.

Since we are most likely going to continue seeing similar problems, this paper proposes to remove the digraphs <%, %>, <:, :>, %: and %:%: from the language entirely. This does not affect the alternative keyword tokens (and, or, etc.).

2. History

The GCC documentation notes:

Apparently in the 1990s some computer systems had trouble inputting these characters, or trouble displaying them. These digraphs almost never appear in C programs nowadays, but we mention them for completeness.

What this refers to is systems that require the source encoding to be something that does not have the characters #, [, ], { or }. In such cases, the corresponding digraphs are required to write those characters in source code.

Such encodings are rather uncommon nowadays, but they do exist.

Historically digraphs were introduced because of [ISO 646], which includes several national variants that do not have square brackets or curly braces. For example, the [ISO-IR-021] (also known as DIN 66003) variant used in Germany replaces [ with Ä, ] with Ü, { with ä and } with ü.

Keld Simonsen pointed out this problem with some ISO 646 variants including the Danish [ISO-646-DK] in a 1984 usenet post. To address this issue, he suggested the following digraphs as a solution ([Simonsen, 1984]):

(. → {
). → }
(* → [
)* → ]
!. → |
!* → \

Even then Martin Minow argued against such a solution, as it was a vanishing problem even at the time.

To quote [Minow, 1984]:

There isn't any really good solution -- it is highly unlikely that the C standardization committee will remove these characters from the language. While most of them can be replaced by suitable #defines, several cannot, notably backslash. The only short-term solution would be for the parties affected to write NRC-specific pre-processors.

In the long term, however, the problem will go away as people move to an 8-bit character set such as Dec-Multinational or the pending ISO standard that is almost identical to it.

That "pending ISO standard" Minow mentions later became [ISO/IEC 8859]. The relevant part of ISO/IEC 8859 for the Danish language is ISO/IEC 8859-1, which was first published in March 1985 as [ECMA-94].

ECMA-94 fully solves the described issue by using the 8th bit in an 8-bit byte to allow for another 96 printable characters, which includes everything that was potentially missing in some ISO 646 variants.

Interestingly, [ISO-IR-027] even lacks :, making four of the digraphs we eventually ended up with unusable. While it is explicitly based on ISO 646, ISO-IR-027 is not a true variant - some of the added letters are mapped to code points which are invariant in ISO 646. However, this shows that even for its original purpose, digraphs are more of a band-aid than a real solution.

2.1. Timeline

So, how did we get here? Unfortunately not a lot of documents from the early days survived. However, the publicly available X3J11, X3J16, WG14 and WG21 documents allow reconstructing roughly this timeline (please reach out if you have corrections or additional information!):

1984
August 27, 1984
C and ANSI Standard

In a Usenet post, Keld Simonsen suggests digraphs as a solution to the problem of missing characters in some ISO 646 variants.

Proposed digraphs:

(. → {
). → }
(* → [
)* → ]
!. → |
!* → \
1985
March, 1985
ECMA-94 is published

ISO/IEC 8859-1 is published as ECMA-94, providing a solution for the problem of missing characters

1985~1986
ANSI C introduces trigraphs
[BYTE 1986] page 138 (146 in the PDF)

Trigraphs have been added to the X3J11 ANSI C standard.

Unfortunately no minutes of the actual meeting where it was voted in seem to have survived. However, the March edition of BYTE magazine notes:

To make C easier to use internationally and to promote a wider use of C as an international language, the committee chose to address the problem of the "overused" ASCII character set within the Information Bulletin by defining a group of trigraph character sequences to act as operator equivalents.

1987
October 15, 1987
Tøndering, Alternative to Trigraphs

A WG14 proposal for digraphs as alternative to trigraphs is published by Tøndering.

WG14's document log lists this document, however the paper itself does not seem to have survived.

However, its contents are quoted in [WG14/N033] on page 2.

December 11, 1987
X3J11 Meeting No. 19

X3J11 votes against a motion to solve trigraph readability.

Plauger presented a request by Tøndering (87-223, 87-224, 87-248) that we add digraphs for braces and brackets, and other readability aids to avoid most uses for trigraphs.

Straw vote: 4 need to solve trigraph readability problem lots no
1988
June 13, 1988
Simonsen and Stroustrup, A European Representation for ISO C (Revised N023)

A paper proposing digraphs is published by Simonsen and Stroustrup. The relevant proposed alternative tokens in this paper are:

(: → {
:) → }
!( → [
) → ]
??/ → \

Note that ) for ] is not a typo. Here's a code example from the paper:

main(argc, argv) char* argv!(); (: if (argc<1 cor *argv!(1)=='??/0') return; printf("Hello,%s??/n", argv!(1)); :)

The paper also discusses using an infix notation argv!a to spell argv[a]. Also note that the paper argues that it should not be legal to mix these digraph constructs with the tokens they replace.

August 19, 1988
Danish Comments on ISO/DP 9899-C

The Danish NB clarifies that reason for their "no" vote on DP 9899 is the remaining problem with regards to representation in non-ASCII ISO 646 character sets.

Attached is another early version of the Danish digraph proposal. In this version the following replacements are proposed:

(: → {
:) → }
a!b → a[b]

This document also notes:

The new constructs have been implemented as an undocumented feature in the C++ compiler by Bjarne Stroustrup, AT&T Bell Laboratories.

October 27, 1988
X3J11 Meeting No. 21
[X3J11/88-155] pages 4-6

Plauger reports that Denmark objected strongly to the failure of X3J11 to adopt any form of digraphs and that he is authorized to submit the final X3J11 draft directly for registration as a DIS only if both the UK and Denmark NBs do not object to its content.

Several arguments against the digraph proposal are raised, notably:

Plum observed that people were at liberty to define various kinds of macros to change the syntactic sugar that sweetens C. He felt that X3J11 should take no stand on a particular set. He also observed that the proposed extensions did not solve the problem of representing punctuation readably within string literals, and do not solve the problem of writing declarations such as a[] (since x!() is presumably invalid.)

Plum asked that X3J11 respectfully say no to the request from WG14. He also urged the Danish members of WG14 to reconsider their opposition to the draft as it stands.

Gwyn felt that the problem as presented was a red herring. He stated that all European shops that he knew had found various ways to deal with the presentation problem in ISO 646, and that these solutions did not belong in the standard.

Finally, a poll was taken:

Straw vote: 0 accept digraphs a la 88-134 40 no

Due to this poll outcome digraphs were not adopted for C89.

1989
December, 1989
C89 is published

In this version of C trigraphs are supported but digraphs are not.

1990
November 26, 1990
A European Representation for ISO C

Bjarne Stroustrup publishes a paper entitled "A European Representation for ISO C" as WG14/N141. Unfortunately this paper is not archived.

1991
May 13-15, 1991
WG14 Meeting in Tokyo, Japan
[WG14/N173] pages 6-8

Lots of discussion around digraphs, mostly about in which lexing phase they should be dealt with. WG14 endorses the digraph proposal.

*** Resolution #4: WG14 endorses the digraph proposal from Denmark (E-mail WG14.109 page 3) that involves the addition of five alternate spellings <%, %>, <:, :>, and %% for {, }, [,], and #, respectively, and the new header <iso646.h>. [Implicit in this was that these new spellings be recognized in translation phase 5 NOT phase 1.]
June 17-21, 1991
X3J16 Meeting No. 6
[WG21/N0013] pages 7 and 14

At this meeting digraphs are formally adopted into C++.

This is also the first meeting at which concerns about the <: digraph are raised. To quote the minutes:

Charney expressed concern about using the <: digraph in C++ because of the :: operator. Plum said that Stroustrup long ago said that C++ programmers won't mind adding a space before :: now and then.

More on this later.

The following digraphs are proposed:

<% → {
%> → }
<: → [
:> → ]
%% → #

Two polls were taken:

1. Add these names and digraphs to C++ as alternate spellings for their corresponding tokens. Motion passed: 24 yes, 2 no. 2. Ask WG14 to consider replacing not_eq with <>. Motion passed: 22 yes, 2 no.
1992
May 13-15, 1992
WG14 Meeting in Salt Lake City, USA

Digraphs and the requests from WG21 are discussed again.

Notably, the digraph <> was pointed out as superfluous and conflicting with another X3J11.1 proposal and may cause problems for other extensions. Similar issues are raised about %%, which additionally seemed to conflict with the language C*. It's also pointed out that WG21 failed to include %%%% as a replacement for ##.

Some noteworthy comments include:

Gwyn objected (yet again) that the entire digraph approach was an attempt to solve a vanishing problem.

Sounds familiar? Martin Minow made the same observation in 1984.

Plauger noted that no really good technical solution is likely to surface after so many years of study. The issue is now much more politics than technology - are we going to help Denmark find a palatable solution and will Denmark accept one without still more changes? If not, then WG14 must give up on consensus in this area. Otherwise, the entire normative addendum will be at risk.

Eventually, Plum suggested that we either drop the Danish proposal entirely or revert to the version already adopted by X3J16.

At the same meeting another revision of the digraph proposal is seen. In this version the following digraphs are proposed:

<: → [
:> → ]
<% → #
<%<% → ##
<> → !=

According to the minutes, several people immediately objected to the continued inclusion of <>. Also, the following comment was made:

Weil observed that :> collides with a popular extension to Microsoft C.

Several polls were taken:

Straw vote: 2 accept N218 with the two changes 15 no Straw vote: 8 accept N222 with <> replaced by NE 9 no Straw vote: 7 try to solve digraph problem some way 12 no

At the same meeting it was once again clarified that the Danish C Panel insisted on reinstating <>. Several NBs expressed their positions:

Jones the Only said that the UK now favors macros, but no digraphs because they might change existing code.

Jaeschke reported that the US now opposes any digraph solution, because the proposals keep changing.

Noda said that Japan wants to support the Danish proposal from an international standpoint, but doesn't want to delay the normative addendum. He asked whether the proposal can be made optional instead of part of the C Standard. Simonsen replied that Denmark wants digraphs to be mandatory.

Plauger suggested that Denmark make one more try to draft a proposal that can achieve consensus. If they fail to do so by the Dec '92 meeting, however, they must face the serious possibility that the normative addendum will be voted out for balloting without a digraph proposal.

November 2-6, 1992
X3J16/WG21 Meeting

Problems with digraphs in keywords are encountered. To quote the minutes:

Roskind objected to the proposal because allowing space between new and [] conflicts with existing practice. Gibbons explained that there are digraphs for [ and ] (<: and :> respectively) and the subgroup did not want keywords containing digraphs.

November 13, 1992
Danish Contribution to Normative Addendum

A paper by Keld Simonsen titled "Danish Contribution to Normative Addendum" is published as WG14/N240. Unfortunately the paper itself does not seem to have survived.

December 9, 1992
Revised Danish Contribution to Normative Addendum

A paper by Cordsen titled "Revised Danish Contribution to Normative Addendum" is published as WG14/N247. Unfortunately the paper itself does not seem to have survived.

It is likely that N247 contained the version that eventually got voted into the C standard. Unfortunately no meeting notes around that time remain either, however around this time the mentions of the Danish proposals stops.

1993
December 1-3, 1993
WG14/X3J11 Meeting in Hawaii

Representatives of the UK and Netherlands NBs make it known that they are not happy with digraphs and intend to vote "no" on the proposed draft amendment.

[AGENDA 3.1] Result of PDAM Balloting (PDAM == Proposed Draft Amendment) Probable voting of WG14 members: [...] Netherlands: No with comments. Digraphs are problem. UK: No with comments. Digraphs are problem.
1995
March, 1995
C95 is published

This version of C includes trigraphs and digraphs.

1998
September, 1998
C++98 is published

This version of C++ includes trigraphs and digraphs.

2009
March 3, 2009
Deprecating trigraphs

A deprecation is attempted via CWG issue 789 in response to CD comment [UK 11].

CWG had consensus in favor of deprecation in March 2009, but decided not to do that in March 2010. To quote the issue:

The CWG decided not to deprecate trigraphs, acknowledging that there are communities in which they are viewed as necessary. Instead, it was decided to address what was considered to be the most pressing issue regarding trigraphs, that is, recognizing trigraph sequences inside raw string literals.

June 19, 2009
Comment on Proposed Trigraph Deprecation

The Canadian NB clarifies their opposition to deprecation of trigraphs. To quote the paper:

In summary, we highlight the major problems when trigraphs are deprecated:

  1. Many real users (and not just IBM) do use trigraphs and resent changing their code for the convenience of another group, or implementers, unless there are really good reasons.
  2. There is no replacement for trigraphs in quotes
  3. Compiling the same code between ASCII and EBCDIC without #ifdefs
  4. Interoperate headers between C with trigraphs and C++ without trigraphs

There are additional specific technical problems for EBCDIC which is one of the main constituent, but we will not list them here as we believe the above report serve as powerful reasons to not deprecate trigraphs.

Importantly, N2910 also points out that digraphs are not a complete replacement for trigraphs.

September 24, 2009
Replacing Trigraphs

Daveed Vandevoorde publishes a paper exploring an alternative solution to [UK 11].

2010
March 2010
Global-scope template arguments vs the <: digraph

Bjarne's prediction did not hold - people did end up minding having to add a space before :: now and then.

To address this, CWG decided to add special casing for <::.

2014
May 6, 2014
Removing trigraphs??!

Richard Smith publishes a paper proposing removal of trigraphs.

October 10, 2014
IBM comment on preparing for a Trigraph-adverse future in C++17

IBM publishes a paper discussing their position on trigraph removal.

It is mentioned that all the technical arguments from their 2009 paper [WG21/N2910] still hold. There are still real customers who use EBCDIC.

However, it is also mentioned that trigraph removal based on N3981 is relatively benign, since compilers may still support trigraphs as a conforming extension.

To quote the paper:

After significant consultations within IBM, it is IBM's position that for the harmony of the greater C++ community, we will not oppose C++17 because of the removal of trigraphs. We recognize that C++ is mostly an ASCII-centric language now. We will continue to oppose trigraph removal, because we feel someone must speak for the minority of users who cannot speak for themselves. This is not just taking a moral high ground, but being practical. We realize the tide is against the EBCDIC world and as such, whether trigraph is removed or not, IBM compiler, EBCDIC, and non-ASCII users must plan to operate in such a world and it is best to start now.

November 3-8, 2014
WG21 Meeting No. 59

Removal of trigraphs is polled in WG21 plenary:

CWG Motion 18 straw poll results were: In favor: 57 Opposed: 2 Abstain: 10 Sutter declared consensus, motion approved.

🎉 Trigraphs are removed from C++.

2017
December, 2017
C++17 is published

This version of C++ does not include trigraphs anymore, but still includes digraphs.

2022
March 2, 2022
Removing trigraphs??!

Robert C. Seacord publishes a paper proposing removal of trigraphs from C to align with C++.

July 18-22, 2022
WG14 Meeting

The C committee discusses removal of trigraphs.

A poll is taken:

Straw poll: Does WG14 want N2940 (removing trigraphs) into C23? 10/6/2. (adopted) N2940 (removing trigraphs) goes into C23. Svoboda: Can we go 2/3rds for removing a feature? Keaton: We go by consensus. We have consensus here.

🎉 Trigraphs are removed from C.

2023
January 23-28, 2023
WG14 Meeting

WG14 discusses trigraph unremoval following ballot comment CA-006 and other trigraph-related comments.

Straw poll: (opinion) Does WG14 want to include trigraphs in C23, in any form? Result: 7-16-3 (no consensus) Straw poll: (decision) Should WG14 REJECT comments CA-006, US15-048, NEN/NL1-049, US18-050, US17-051, US16-052? Result: 20-4-3 (rejected)
2024
October, 2024
C23 is published

This version of C does not include trigraphs anymore, but still includes digraphs.

3. Design Space

3.1. Splicers

Splicers from [P2996] were accepted for C++26 with the proposed syntax [: expr :]. However, we are not allowed to use digraphs to spell this as <:: expr ::>.

While that seems to be in direct contradiction of the guarantees we're given in [lex.digraph] paragraph 2

In all respects of the language, each alternative token behaves the same, respectively, as its primary token, except for its spelling.

it actually isn't. The tokens [: and :] are distinct preprocessing tokens rather than being composed from [ and : (or : and ] respectively). Therefore it doesn't matter whether <: is a valid alternative spelling for [ - the splicer syntax does not contain [ tokens.

Unfortunately that doesn't exactly help if your source encoding does not have square brackets. In such cases you cannot use this language feature directly - you'd have to find some workaround (such as inventing some arbitrary replacement sequence that is expanded to [: during or after transcoding).

3.2. Interpolated string literals

The design problems stemming from digraphs do not end there. In some of the recent discussions around the proposed string interpolation feature ([P3412], [P3951]) some interesting code was brought up. Consider the following:

t"foo { bar %> baz"

In an interpolated string literal, the interpolated expression field is wrapped in curly braces. To parse an interpolated string literal you must therefore switch between regular string literal parsing and expression parsing as soon as you see a field introducer ({).

However, once you parse the interpolated expression things get a little strange. %> is an alternative spelling of }. We haven't yet returned back to literal parsing, so this would yield the correct token. So, should we be able to signify the end of the interpolation field with %>?

Since allowing anything but literal } to terminate a interpolation field seems extremely surprising and will most likely not match user expectations, we are once again looking for a workaround because of digraphs.

To make matters worse, there is another ambiguity. Consider an interpolated literal:

t"foo { bar :>5}"

In this example, is :> the digraph for ] or is it the start of the format specifiers of that field? In a non-interpolated format literal, "{:>5}" would be a valid format specifier.

4. Affected encodings

A common way to support arbitrary source encodings is by normalizing the source code through iconv. Therefore, we are typically limited by what iconv supports. Note that iconv also supports several translation character sets that are irrelevant for our purposes. The codec names in this chapter are the primary/canonical names used by iconv rather than necessarily actual codec names.

To figure out whether a particular encoding needs digraphs, we can check whether iconv fails when trying to convert the characters #, [, ], { or } to that encoding. If it does, then that encoding requires digraphs.

In a similar fashion, other characters that have meaning in C++ can be checked. For example, if an encoding does not support :, several digraphs are not usable either. As mentioned before, one such encoding is LATIN-GREEK-1 ([ISO-IR-027]).

On a somewhat recent Arch Linux system, this gives us the following support matrix: View on Google Sheets

Out of 279 considered encodings, 200 can encode the everything in the basic character set. However, 16 cannot even encode at least one character in the ranges a-z, A-Z or 0-9. These are mostly replacement character sets and special purpose encodings (e.g. for Braille or OCR purposes) and are therefore disregarded for the purposes of this document.

Out of the remaining 263 considered encodings, the following 49 encodings lack at least one character for which we have a digraph:

While these are not the only encodings that cannot represent \ directly, the following 40 encodings out of those 49 also cannot represent \ directly:

For those, digraphs help but do not provide a complete solution either.

We can narrow that list down even further. The most interesting digraph is %:, since it can be used to spell #pragma. Some compilers already have pragmas to specify the source encoding - for example, the IBM z/OS XL compilers support #pragma filetag (documentation) for this purpose.

If we only have to retain a digraph for #, this narrows the 49 plausible encodings down to the following 22:

Since some compilers support pragmas such as #pragma filetag("..."), these encodings are especially interesting. For these encodings, digraphs allow us to write code in an encoding-agnostic way by using %:pragma filetag("...") instead of #pragma filetag("..."). This is especially useful for shared headers.

Out of the 49 plausible encodings, only 8 have replacements for all characters that currently have meaning in C++. This includes the alternative operators and, or and so on.

While this isn't a huge list, it proves the point that there are still encodings that require digraphs.

However, the question remains whether there is any actual use of any of these in practice. Fortunately those are all rather obscure encodings by today's standards.

5. Usage Analysis

So, are people still using digraphs? Are they targeting somewhat modern C++ versions?

A GitHub code search can unfortunately not answer this question for us, since a lot of use might be in code that isn't publicly available. However, it helps getting a rough idea of the situation and how people use digraphs.

Surprisingly, we can actually find quite a lot of code that uses digraphs. For example %:include is included in 850 files!

However, if you take a closer look at those results, you'll quickly notice that aside from a bunch of false positives most of them fall into one of three categories:

  1. Compiler test code and other lexer test code
  2. Demo code, examples and exercises
  3. Inconsistent use of digraphs and the tokens they replace, possibly for obfuscation purposes

Note how this list is missing "actual production code that uses digraphs for anything other than tests".

For the other digraphs the situation is similar. %:%: yields 216 results, most of which are false positives and/or lexer code. %:if yields 22 results, all of which are university assignments, inconsistent or false positives.

For the promising %:pragma we get 107 results, most if not all of which are inconsistent. For %:pragma filetag we get 0 results (even for the trigraph spelling we at least get 106 results).

For the digraphs <:, :>, <% and %> a code search yields a lot more results, but they seem to be almost exclusively false positives - usually because they appear in string literals or comments. Furthermore, <: yields especially bad results due to qualified template arguments being spelled as templ<::arg> (without space after <).

6. Compatibility

At the time of writing almost all major compilers still support trigraphs as an extension. For instance:

Some compilers already support disabling digraph support altogether. For instance:

7. Alternatives to full digraph removal

As mentioned before, compilers that have pragmas such as #pragma filetag("encoding") only really need some way of spelling that.

In [WG14/N3116] Rajan Bhakta confirms this:

Theoretically the # is the only one we need, to engage the pragma.

Since there are several ways to spell #pragma, there are multiple avenues to explore. The Google Sheet from §4. Affected encodings compares the different spellings across encodings in the "Pragma Analysis" sheet

7.1. Use _Pragma("...") where available

In C99 and C++11 _Pragma was standardized as an alternative to #pragma. With this spelling # is not directly required.

However, if the pragma's argument is a string literal, the # or \ characters are still required to escape the argument properly. Unfortunately that is the case for the filetag pragma, therefore this is not a complete solution either.

As demonstrated in the "Pragma Analysis" sheet, this is not a purely theoretical concern. For example, the following encodings can represent both ??=pragma filetag("IBM-1047") and %:pragma filetag("IBM-1047"), but neither one of _Pragma("filetag(\"IBM-1047\")") and #pragma filetag("IBM-1047"):

7.2. Partially remove digraphs

Instead of removing all digraphs, we could remove all digraphs except for %: (and possibly %:%:). This would allow users to spell #pragma as %:pragma.

This option seems feasible since %: is relatively harmless - it does not conflict with any other language features in the way <: or %> do and we could still get rid of those.

However, it's not clear whether a tiny amount of actual usage of this feature warrants keeping it around for another couple of decades, especially given that there are other alternatives.

Furthermore, the usage analysis in §5. Usage Analysis shows that being able to spell %:pragma filetag is largely a theoretical concern as compilers still have opt-in support for trigraphs.

7.3. Partially reintroduce trigraphs

Since most if not all code that actually uses #pragma filetag with an encoding that cannot represent # uses the trigraph spelling rather than the digraph spelling, we could also reintroduce just the ??= trigraph. This would allow users to once again spell #pragma filetag as ??=pragma filetag.

As with the other options, this mostly is up to whether the C and C++ committees feel like supporting such encodings is worth the effort.

It also seems rather unlikely that either language is going to reuse ??= for any other purposes anytime soon, meaning that this is a conforming extension either way. If compilers want to keep supporting this, they absolutely can.

7.4. Introduce another alternative spelling for #pragma

Instead of keeping %: around or reintroducing ??=, it might also be viable to just introduce another spelling for #pragma that does not require stringifaction of the arguments.

Particularly interesting for this is that ??= may still be supported as a conforming extension. Therefore, implementations may already conformingly parse ??=pragma as a single token representing a valid #pragma directive, regardless of whether they support trigraphs fully or not.

However, since such pragmas are often wrapped in macro guards, the same may have to be applied to other preprocessor diretives as well.

Since this does not necessarily require any changes to the standard (as it is doable as conforming extension), this is not pursued at this point.

7.5. Deprecate digraphs first

It seems highly unlikely that deprecation is actually meaningful in this case.

Users that still rely on encodings that require digraphs are likely not going to be able to update their code regardless of deprecation warnings or not. This would just delay removal and is not pursued at this point.

8. Wording

Make the following changes to the C++ Working Draft. All wording is relative to [N5054], the latest draft at the time of writing.

Lexical conventions [lex]

Preprocessing tokens [lex.pptoken]

Modify paragraph 5 as indicated

5 If the input stream has been parsed into preprocessing tokens up to a given character:

5.1 If the next character begins a sequence of characters that could be the prefix and initial double quote of a raw string literal, such as `R"`, the next preprocessing token shall be a raw string literal. Between the initial and final double quote characters of the raw string, any transformations performed in phase 2 (line splicing) are reverted; this reversion is applied before any d-char, r-char, or delimiting parenthesis is identified. The raw string literal is defined as the shortest sequence of characters that matches the raw-string pattern

encoding-prefixopt R raw-string

5.2 Otherwise, if the next three characters are <:: and the subsequent character is neither : nor >, the < is treated as a preprocessing token by itself and not as the first character of the alternative token <:.

5.3 Otherwise, if the next three characters are [:: and the subsequent character is not :, or if the next three characters are :>, the [ is treated as a preprocessing token by itself and not as the first character of the preprocessing token [:.

[Note: The tokens [: and :] cannot be composed from digraphs. — end note]

5.4 Otherwise, the next preprocessing token is the longest sequence of [...]

Operators and punctuators [lex.operators]

Modify as indicated.

1 The lexical representation of C++ programs includes a number of preprocessing tokens that are used in the syntax of the preprocessor or are converted into tokens for operators and punctuators:

preprocessing-op-or-punc:
preprocessing-operator
operator-or-punctuator
preprocessing-operator:
one of
# ## %: %:%:
operator-or-punctuator:
one of
{ } [ ] ( ) [: :]
<% %> <: :> ; : ...
? :: . .* -> ->* ^^ ~
! + - * / % ^ & |
= += -= *= /= %= ^= &= |=
== != < > <= >= <=> && ||
<< >> <<= >>= ++ -- ,
and or xor not bitand bitor compl
and_eq or_eq xor_eq not_eq

Each operator-or-punctuator is converted to a single token in translation phase 6 ([lex.phases]).

Alternative tokens [lex.digraphalt]

Rename to [lex.alt] and update all references accordingly.

1 Alternative token representations are provided for some operators and punctuators.

2 In all respects of the language, each alternative token behaves the same, respectively, as its primary token, except for its spelling.

[Note: The “stringized” values ([cpp.stringize]) of [ and <: are different, maintaining the source spelling. — end note]

The set of alternative tokens is defined in Table 3.

Modify Table 3

Alternative Primary Alternative Primary Alternative Primary
<% { and && and_eq &=
%> } bitor | or_eq |=
<: [ or || xor_eq ^=
:> ] xor ^ not !
%: # compl ~ not_eq !=
%:%: ## bitand &

Remove footnote 10

🞰) These include “digraphs” and additional reserved words. The term “digraph” (token consisting of two characters) is not perfectly descriptive, since one of the alternative preprocessing-tokens is %:%: and of course several primary tokens contain two characters. Nonetheless, those alternative tokens that aren't lexical keywords are colloquially known as “digraphs”.

Preprocessing directives [cpp]

Argument substitution [cpp.subst]

Modify Example 1 as indicated.

[Example:

#define LPAREN() ( #define G(Q) 42 #define F(R, X, ...) __VA_OPT__(G R X) ) int x = F(LPAREN(), 0, <:[-); // replaced by int x = 42;

— end example]

Annex C (informative) [diff]

C++ and ISO C++ 2026 [diff.cpp26]

[lex] lexical conventions [diff.cpp26.lex]

Add new entry

Affected subclauses: [lex.pptoken], [lex.operators] and [lex.alt]

Change: The "digraph" tokens <%, %>, <:, :>, %: and %:%: are no longer usable as alternative representations of other tokens.

Rationale: Resolves fragmentation of the language, opens up design space and simplifies the language.

Effect on original feature: Valid C++ 2026 code that uses the digraphs <%, %>, <:, :>, %: and %:%: may become ill-formed or have different meaning in this version of C++. The character sequences <%, %>, <:, :>, %: and %:%: are no longer recognized as single preprocessing tokens. Occurrences within comments and literals are unaffected. The meaning of these token sequences may change in future versions of C++.

9. Acknowledgements

Thanks to Corentin Jabot and Hubert Tong for several rather illuminating discussions on the topic.

Thanks to Jan Schultke for the markup language and document generator used for this paper and thanks to all the awesome people who gave feedback on this proposal.


10. References

[WG14/N052] Simonsen and Stroustrup, A European Representation for ISO C (Revised N023) https://www.open-std.org/jtc1/sc22/wg14/www/docs/n052.pdf
[WG14/N224] Minutes of meeting of WG14 - C held in Salt Lake City USA, 1992-05-13/15 https://www.open-std.org/jtc1/sc22/wg14/www/docs/n224.pdf
[CWG1104] Global-scope template arguments vs the <: digraph https://cplusplus.github.io/CWG/issues/1104.html
[WG14/N3044] Draft Minutes of 2022 July 18-22 WG14 Meeting https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3044.txt
[WG21/N4210] IBM comment on preparing for a Trigraph-adverse future in C++17 https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4210.pdf

11. Appendix: Tables of affected encodings

This is an export of the Google sheet in the §4. Affected encodings section.

Please do note that these tables include codecs that are not plausible source encodings. For example BRF is a special-purpose encoding for braille.

11.1. Basic Character Set representability

Encoding 0-9 A-Z a-z HT/VT/FF/LF space () [] {} <> / # ! " $ % & ' * + , - . : ; = ? @ \ ^ _ ` | ~
BRF no no no yes no no no no no no no no no no no no no no no no no no no no no no no no no no no no no
ISO-11548-1 no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no
INIS-8 no no no yes yes no no no no no no no no no no no no no no no no no no no no no no no no no no no no
INIS-cyrillic no no no yes yes no no no no no no no no no no no no no no no no no no no no no no no no no no no no
ISO_5428:1980 no no no yes yes no no no no no no no no no no no no no no no no no no yes no no no no no no no no no
ISO_2033-1983 yes no no yes yes no no no no no no no no no no no no no no no no no no no no no no no no no no no no
ISO_5427:1981 no no no yes yes no yes no no no no no no no no no no no no no no no no no no no no no no yes no no no
greek7-old yes no no yes yes yes no no yes yes no yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no no no yes yes no yes
ISO_5427 yes no no yes yes yes no no yes yes yes yes yes no yes yes yes yes yes yes yes yes yes yes yes yes no no no no no no no
ASMO_449 yes no no yes yes yes yes yes yes yes yes yes yes no yes yes yes yes yes no yes yes yes no yes no yes yes yes yes no yes no
greek-ccitt yes no no yes yes yes yes yes yes yes yes yes yes no yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no yes no
greek7 yes no no yes yes yes yes yes yes yes yes yes yes no yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no
IBM290 yes yes no yes yes yes no no yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no no yes yes yes no
IBM4899 yes yes no yes yes yes no no yes yes yes yes yes yes yes no yes yes yes yes yes yes yes yes yes yes yes no no yes no yes no
IBM803 yes yes no yes yes yes no no yes yes yes yes yes yes yes no yes yes yes yes yes yes yes yes yes yes yes no no yes no yes no
latin-greek yes yes no yes yes yes yes yes yes yes no yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no
EBCDIC-AT-DE-A yes yes yes yes yes yes no no yes yes no no no no yes yes yes yes yes yes yes yes yes yes yes yes no no no yes no yes no
EBCDIC-DK-NO-A yes yes yes yes yes yes no no yes yes no no no no yes yes yes yes yes yes yes yes yes yes yes yes no no no yes no yes no
EBCDIC-ES-A yes yes yes yes yes yes no no yes yes no yes no no yes yes yes yes yes yes yes yes yes yes yes yes yes no no yes no yes no
EBCDIC-FI-SE yes yes yes yes yes yes no no yes yes no yes yes no yes yes yes yes yes yes yes yes yes yes yes yes no no yes yes no no no
EBCDIC-FI-SE-A yes yes yes yes yes yes no no yes yes no no no no yes yes yes yes yes yes yes yes yes yes yes yes no no no yes no yes no
EBCDIC-FR yes yes yes yes yes yes no no yes yes no yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no no yes yes yes no no
EBCDIC-IT yes yes yes yes yes yes no no yes yes no yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no no yes yes no no no
IBM275 yes yes yes yes yes yes no no yes yes no yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no yes yes yes no no yes
IBM4517 yes yes yes yes yes yes no no yes yes no yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no no yes yes no no no
ISO646-ES yes yes yes yes yes yes no no yes yes no yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no no yes yes yes no yes
ISO646-FR yes yes yes yes yes yes no no yes yes no yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no no yes yes no no no
ISO646-FR1 yes yes yes yes yes yes no no yes yes no yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no no yes yes yes no no
ISO646-IT yes yes yes yes yes yes no no yes yes no yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no no yes yes no no no
ISO646-NO2 yes yes yes yes yes yes no no yes yes no yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no yes yes yes yes no
NATS-DANO yes yes yes yes yes yes no no yes yes no yes no yes yes yes yes yes yes yes yes yes yes yes yes yes no no no yes no no no
EBCDIC-AT-DE yes yes yes yes yes yes no no yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no no yes yes yes no no
EBCDIC-CA-FR yes yes yes yes yes yes no no yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no yes yes yes no no
EBCDIC-DK-NO yes yes yes yes yes yes no no yes yes yes yes yes no yes yes yes yes yes yes yes yes yes yes yes yes no yes yes yes yes no no
IBM16804 yes yes yes yes yes yes no no yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no no yes no yes no
IBM420 yes yes yes yes yes yes no no yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no no yes no yes no
ISO646-CA yes yes yes yes yes yes no no yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no no no yes no no no
ISO646-CA2 yes yes yes yes yes yes no no yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no no no yes no no no
ISO646-DE yes yes yes yes yes yes no no yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no no yes yes yes no no
ISO646-DK yes yes yes yes yes yes no no yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no yes yes yes no yes
ISO646-ES2 yes yes yes yes yes yes no no yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no no no yes yes no no
ISO646-FI yes yes yes yes yes yes no no yes yes yes yes yes no yes yes yes yes yes yes yes yes yes yes yes yes yes no yes yes yes no no
ISO646-HU yes yes yes yes yes yes no no yes yes yes yes yes no yes yes yes yes yes yes yes yes yes yes yes yes no no yes yes no no no
ISO646-NO yes yes yes yes yes yes no no yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no yes yes yes no no
ISO646-PT yes yes yes yes yes yes no no yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no no yes yes yes no no
ISO646-PT2 yes yes yes yes yes yes no no yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no no yes yes yes no yes
ISO646-SE2 yes yes yes yes yes yes no no yes yes yes yes yes no yes yes yes yes yes yes yes yes yes yes yes yes no no no yes no no no
ISO646-YU yes yes yes yes yes yes no no yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no no no yes no no no
NATS-SEFI yes yes yes yes yes yes no no yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no no no yes no no no
EBCDIC-ES yes yes yes yes yes yes no yes yes yes no yes yes no yes yes yes yes yes yes yes yes yes yes yes yes yes yes no yes yes yes no
EBCDIC-ES-S yes yes yes yes yes yes no yes yes yes no yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no yes yes yes no
Latin-greek-1 yes yes yes yes yes yes no yes yes yes no no yes no yes yes yes yes yes yes yes yes no yes yes no no no no no yes yes no
EBCDIC-UK yes yes yes yes yes yes no yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no yes yes yes no
EBCDIC-US yes yes yes yes yes yes no yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no yes yes yes yes
IBM281 yes yes yes yes yes yes no yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no no yes yes yes no
ISO646-JP-OCR-B yes yes yes yes yes yes no yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no yes yes no yes no
EBCDIC-PT yes yes yes yes yes yes yes no yes yes no yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no no yes yes yes no no
IBM423 yes yes yes yes yes yes yes no yes yes no yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no no yes yes yes no no
INIS yes yes yes yes yes yes yes no yes yes no no no yes yes no yes yes yes yes yes yes yes yes yes no no no no no no yes no
EBCDIC-IS-FRISS yes yes yes yes yes yes yes no yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no no no yes no yes no
IBM274 yes yes yes yes yes yes yes no yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no no yes yes yes no no
IBM880 yes yes yes yes yes yes yes no yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no no no
ISO646-CU yes yes yes yes yes yes yes no yes yes yes yes yes no yes yes yes yes yes yes yes yes yes yes yes yes yes no no yes yes no no
T.61-8bit yes yes yes yes yes yes yes no yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no no yes no yes no
ISO646-GB yes yes yes yes yes yes yes yes yes yes no yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no
ANSI_X3.110-1983 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
ARMSCII-8 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
Big5 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
Big5-HKSCS yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
CP10007 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
CP1125 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
CP737 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
CP770 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
CP771 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
CP772 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
CP773 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
CP774 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
CSN_369103 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
CWI yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
DEC-MCS yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
ECMA-cyrillic yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
EUC-JISX0213 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
EUC-JP yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
EUC-JP-MS yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
EUC-KR yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
EUC-TW yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
GB18030 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
GB2312 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
GBK yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
GEORGIAN-ACADEMY yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
GEORGIAN-PS yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
GOST_19768-74 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
HP-GREEK8 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
hp-roman8 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
HP-ROMAN9 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
HP-THAI8 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
HP-TURKISH8 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM037 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM038 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no yes
IBM1004 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM1008 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM1025 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM1026 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM1046 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM1047 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM1097 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no yes yes yes yes
IBM1112 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM1122 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM1123 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM1124 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM1129 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM1130 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM1132 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM1133 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM1137 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM1140 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM1141 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM1142 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM1143 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM1144 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM1145 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM1146 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM1147 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM1148 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM1149 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM1153 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM1154 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM1155 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM1156 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM1157 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM1158 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM1160 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM1161 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM1162 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM1163 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM1164 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM1166 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM1167 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM12712 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM1364 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM1371 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no yes yes yes yes yes
IBM1388 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM1390 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM1399 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM256 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM273 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM277 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM278 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM280 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM284 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM285 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM297 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM424 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM437 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM4909 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM4971 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM500 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM5347 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM775 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM850 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM851 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM852 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM855 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM856 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM857 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM858 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM860 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM861 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM862 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM863 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM864 yes yes yes yes yes yes yes yes yes yes yes yes yes yes no yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM865 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM866 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM866NAV yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM868 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM869 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM870 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM871 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM875 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no yes
IBM891 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM901 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM902 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM903 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM9030 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM904 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM905 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM9066 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM918 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM921 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM922 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM930 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no yes yes yes yes no
IBM932 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM933 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM935 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM937 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM939 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no yes yes yes yes no
IBM943 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IBM9448 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
IEC_P27-1 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
ISIRI-3342 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
ISO-10646-UCS-2 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
ISO-2022-CN yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
ISO-2022-CN-EXT yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
ISO-2022-JP yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
ISO-2022-JP-2 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
ISO-2022-JP-3 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
ISO-2022-KR yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
ISO-8859-1 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
ISO-8859-10 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
ISO-8859-11 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
ISO-8859-13 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
ISO-8859-14 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
ISO-8859-15 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
ISO-8859-16 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
ISO-8859-2 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
ISO-8859-3 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
ISO-8859-4 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
ISO-8859-5 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
ISO-8859-6 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
ISO-8859-7 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
ISO-8859-8 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
ISO-8859-9 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
ISO-8859-9E yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
ISO-IR-197 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
ISO-IR-209 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
iso-ir-90 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
ISO646-CN yes yes yes yes yes yes yes yes yes yes yes yes yes no yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no
ISO646-JP yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no yes yes yes yes no
ISO646-KR yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no yes yes yes yes yes
ISO_10367-box yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
ISO_6937 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
JOHAB yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no yes yes yes yes yes
KOI-8 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
KOI8-R yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
KOI8-RU yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
KOI8-T yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
KOI8-U yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
KZ-1048 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
MAC-CENTRALEUROPE yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
MAC-IS yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
MAC-SAMI yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
MAC-UK yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
macintosh yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
MIK yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
PTCP154 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
Shift_JIS yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no yes yes yes yes no
Shift_JISX0213 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes no yes yes yes yes no
TCVN5712-1 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
TIS-620 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
TSCII yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
UCS-2BE yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
UCS-2LE yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
UCS-4BE yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
UCS-4LE yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
UHC yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
US-ASCII yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
UTF-16 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
UTF-16BE yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
UTF-16LE yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
UTF-32 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
UTF-32BE yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
UTF-32LE yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
UTF-7 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
UTF-7-IMAP yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
UTF-8 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
VISCII yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
WIN-SAMI-2 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
windows-1250 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
windows-1251 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
windows-1252 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
windows-1253 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
windows-1254 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
windows-1255 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
windows-1256 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
windows-1257 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
windows-1258 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
Windows-31J yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes
windows-874 yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes

11.2. #pragma analysis

Encoding Needs digraphs Digraphs spellable #pragma filetag("IBM-1047") _Pragma("filetag("IBM-1047")") ??=pragma filetag("IBM-1047") %:pragma filetag("IBM-1047") Do digraphs help? Still missing after digraph substitution
BRF [], {}, # FALSE FALSE FALSE FALSE FALSE Cannot spell all digraphs 0-9, A-Z, a-z, space, (), <>, /, !, ", $, %, &, ', *, +, ,, -, ., :, ;, =, ?, @, \, ^, _, `, |, ~
ISO-11548-1 [], {}, # FALSE FALSE FALSE FALSE FALSE Cannot spell all digraphs 0-9, A-Z, a-z, HT/VT/FF/LF, space, (), <>, /, !, ", $, %, &, ', *, +, ,, -, ., :, ;, =, ?, @, \, ^, _, `, |, ~
INIS-8 [], {}, # FALSE FALSE FALSE FALSE FALSE Cannot spell all digraphs 0-9, A-Z, a-z, (), <>, /, !, ", $, %, &, ', *, +, ,, -, ., :, ;, =, ?, @, \, ^, _, `, |, ~
INIS-cyrillic [], {}, # FALSE FALSE FALSE FALSE FALSE Cannot spell all digraphs 0-9, A-Z, a-z, (), <>, /, !, ", $, %, &, ', *, +, ,, -, ., :, ;, =, ?, @, \, ^, _, `, |, ~
ISO_5428:1980 [], {}, # FALSE FALSE FALSE FALSE FALSE Cannot spell all digraphs 0-9, A-Z, a-z, (), <>, /, !, ", $, %, &, ', *, +, ,, -, ., :, =, ?, @, \, ^, _, `, |, ~
ISO_2033-1983 [], {}, # FALSE FALSE FALSE FALSE FALSE Cannot spell all digraphs A-Z, a-z, (), <>, /, !, ", $, %, &, ', *, +, ,, -, ., :, ;, =, ?, @, \, ^, _, `, |, ~
ISO_5427:1981 {}, # FALSE FALSE FALSE FALSE FALSE Cannot spell all digraphs 0-9, A-Z, a-z, (), <>, /, !, ", $, %, &, ', *, +, ,, -, ., :, ;, =, ?, @, \, ^, `, |, ~
Latin-greek-1 [], # FALSE FALSE FALSE FALSE FALSE Cannot spell all digraphs !, $, :, ?, @, \, ^, _, ~
greek7-old [], {}, # TRUE FALSE FALSE FALSE FALSE Insufficient A-Z, a-z, @, \, ^, |
ISO_5427 [], {} TRUE FALSE FALSE FALSE FALSE Insufficient A-Z, a-z, $, @, \, ^, _, `, |, ~
IBM290 [], {} TRUE FALSE FALSE FALSE FALSE Insufficient a-z, \, ^, ~
IBM4899 [], {} TRUE FALSE FALSE FALSE FALSE Insufficient a-z, &, \, ^, `, ~
IBM803 [], {} TRUE FALSE FALSE FALSE FALSE Insufficient a-z, &, \, ^, `, ~
latin-greek # TRUE FALSE FALSE FALSE FALSE Insufficient a-z, ~
EBCDIC-AT-DE-A [], {}, # TRUE FALSE FALSE FALSE FALSE Insufficient !, ", $, @, \, ^, `, ~
EBCDIC-DK-NO-A [], {}, # TRUE FALSE FALSE FALSE FALSE Insufficient !, ", $, @, \, ^, `, ~
EBCDIC-ES-A [], {}, # TRUE FALSE FALSE FALSE FALSE Insufficient ", $, \, ^, `, ~
EBCDIC-FI-SE [], {}, # TRUE FALSE FALSE TRUE TRUE Insufficient $, @, \, `, |, ~
EBCDIC-FI-SE-A [], {}, # TRUE FALSE FALSE FALSE FALSE Insufficient !, ", $, @, \, ^, `, ~
EBCDIC-FR [], {}, # TRUE FALSE FALSE TRUE TRUE Insufficient @, \, |, ~
EBCDIC-IT [], {}, # TRUE FALSE FALSE TRUE TRUE Insufficient @, \, `, |, ~
IBM275 [], {}, # TRUE FALSE TRUE TRUE TRUE Insufficient @, `, |
IBM4517 [], {}, # TRUE FALSE FALSE TRUE TRUE Insufficient @, \, `, |, ~
ISO646-ES [], {}, # TRUE FALSE FALSE TRUE TRUE Insufficient @, \, |
ISO646-FR [], {}, # TRUE FALSE FALSE TRUE TRUE Insufficient @, \, `, |, ~
ISO646-FR1 [], {}, # TRUE FALSE FALSE TRUE TRUE Insufficient @, \, |, ~
ISO646-IT [], {}, # TRUE FALSE FALSE TRUE TRUE Insufficient @, \, `, |, ~
ISO646-NO2 [], {}, # TRUE FALSE FALSE TRUE TRUE Insufficient \, ~
NATS-DANO [], {}, # TRUE FALSE FALSE FALSE FALSE Insufficient ", @, \, ^, `, |, ~
EBCDIC-ES [], # TRUE FALSE TRUE TRUE TRUE Insufficient $, ^, ~
EBCDIC-ES-S [], # TRUE FALSE TRUE TRUE TRUE Insufficient ^, ~
EBCDIC-PT {}, # TRUE FALSE FALSE TRUE TRUE Insufficient @, \, |, ~
IBM423 {}, # TRUE FALSE FALSE TRUE TRUE Insufficient @, \, |, ~
INIS {}, # TRUE FALSE FALSE FALSE FALSE Insufficient !, ", &, ?, @, \, ^, _, `, ~
ISO646-GB # TRUE FALSE TRUE TRUE TRUE Insufficient ~
ASMO_449 None TRUE FALSE FALSE FALSE FALSE No effect A-Z, a-z, $, ,, ;, ?, `, ~
greek-ccitt None TRUE FALSE FALSE FALSE FALSE No effect A-Z, a-z, $, `, ~
greek7 None TRUE FALSE FALSE FALSE FALSE No effect A-Z, a-z, $, ~
EBCDIC-AT-DE [], {} TRUE TRUE FALSE TRUE TRUE Insufficient @, \, |, ~
EBCDIC-CA-FR [], {} TRUE TRUE FALSE TRUE TRUE Insufficient \, |, ~
EBCDIC-DK-NO [], {} TRUE TRUE TRUE TRUE TRUE Insufficient $, @, |, ~
IBM16804 [], {} TRUE TRUE FALSE TRUE TRUE Insufficient \, ^, `, ~
IBM420 [], {} TRUE TRUE FALSE TRUE TRUE Insufficient \, ^, `, ~
ISO646-CA [], {} TRUE TRUE FALSE TRUE TRUE Insufficient @, \, ^, `, |, ~
ISO646-CA2 [], {} TRUE TRUE FALSE TRUE TRUE Insufficient @, \, ^, `, |, ~
ISO646-DE [], {} TRUE TRUE FALSE TRUE TRUE Insufficient @, \, |, ~
ISO646-DK [], {} TRUE TRUE FALSE TRUE TRUE Insufficient \, |
ISO646-ES2 [], {} TRUE TRUE FALSE TRUE TRUE Insufficient @, \, ^, |, ~
ISO646-FI [], {} TRUE TRUE FALSE TRUE TRUE Insufficient $, \, |, ~
ISO646-HU [], {} TRUE TRUE FALSE TRUE TRUE Insufficient $, @, \, `, |, ~
ISO646-NO [], {} TRUE TRUE FALSE TRUE TRUE Insufficient \, |, ~
ISO646-PT [], {} TRUE TRUE FALSE TRUE TRUE Insufficient @, \, |, ~
ISO646-PT2 [], {} TRUE TRUE FALSE TRUE TRUE Insufficient @, \, |
ISO646-SE2 [], {} TRUE TRUE FALSE TRUE TRUE Insufficient $, @, \, ^, `, |, ~
ISO646-YU [], {} TRUE TRUE FALSE TRUE TRUE Insufficient @, \, ^, `, |, ~
NATS-SEFI [], {} TRUE TRUE FALSE TRUE TRUE Insufficient @, \, ^, `, |, ~
EBCDIC-UK [] TRUE TRUE TRUE TRUE TRUE Insufficient ^, ~
EBCDIC-US [] TRUE TRUE TRUE TRUE TRUE Insufficient ^
IBM281 [] TRUE TRUE FALSE TRUE TRUE Insufficient \, ^, ~
ISO646-JP-OCR-B [] TRUE TRUE FALSE TRUE TRUE Insufficient \, `, ~
EBCDIC-IS-FRISS {} TRUE TRUE FALSE TRUE TRUE Insufficient @, \, ^, `, ~
IBM274 {} TRUE TRUE FALSE TRUE TRUE Insufficient @, \, |, ~
IBM880 {} TRUE TRUE TRUE TRUE TRUE Insufficient `, |, ~
ISO646-CU {} TRUE TRUE FALSE TRUE TRUE Insufficient $, \, ^, |, ~
T.61-8bit {} TRUE TRUE FALSE TRUE TRUE Insufficient \, ^, `, ~
IBM864 None FALSE TRUE TRUE TRUE FALSE No effect %
IBM038 None TRUE TRUE TRUE TRUE TRUE No effect |
IBM1097 None TRUE TRUE TRUE TRUE TRUE No effect ^
IBM1371 None TRUE TRUE FALSE TRUE TRUE No effect \
IBM875 None TRUE TRUE TRUE TRUE TRUE No effect |
IBM930 None TRUE TRUE FALSE TRUE TRUE No effect \, ~
IBM939 None TRUE TRUE FALSE TRUE TRUE No effect \, ~
ISO646-CN None TRUE TRUE TRUE TRUE TRUE No effect $, ~
ISO646-JP None TRUE TRUE FALSE TRUE TRUE No effect \, ~
ISO646-KR None TRUE TRUE FALSE TRUE TRUE No effect \
JOHAB None TRUE TRUE FALSE TRUE TRUE No effect \
Shift_JIS None TRUE TRUE FALSE TRUE TRUE No effect \, ~
Shift_JISX0213 None TRUE TRUE FALSE TRUE TRUE No effect \, ~
ANSI_X3.110-1983 None TRUE TRUE TRUE TRUE TRUE Not needed None
ARMSCII-8 None TRUE TRUE TRUE TRUE TRUE Not needed None
Big5 None TRUE TRUE TRUE TRUE TRUE Not needed None
Big5-HKSCS None TRUE TRUE TRUE TRUE TRUE Not needed None
CP10007 None TRUE TRUE TRUE TRUE TRUE Not needed None
CP1125 None TRUE TRUE TRUE TRUE TRUE Not needed None
CP737 None TRUE TRUE TRUE TRUE TRUE Not needed None
CP770 None TRUE TRUE TRUE TRUE TRUE Not needed None
CP771 None TRUE TRUE TRUE TRUE TRUE Not needed None
CP772 None TRUE TRUE TRUE TRUE TRUE Not needed None
CP773 None TRUE TRUE TRUE TRUE TRUE Not needed None
CP774 None TRUE TRUE TRUE TRUE TRUE Not needed None
CSN_369103 None TRUE TRUE TRUE TRUE TRUE Not needed None
CWI None TRUE TRUE TRUE TRUE TRUE Not needed None
DEC-MCS None TRUE TRUE TRUE TRUE TRUE Not needed None
ECMA-cyrillic None TRUE TRUE TRUE TRUE TRUE Not needed None
EUC-JISX0213 None TRUE TRUE TRUE TRUE TRUE Not needed None
EUC-JP None TRUE TRUE TRUE TRUE TRUE Not needed None
EUC-JP-MS None TRUE TRUE TRUE TRUE TRUE Not needed None
EUC-KR None TRUE TRUE TRUE TRUE TRUE Not needed None
EUC-TW None TRUE TRUE TRUE TRUE TRUE Not needed None
GB18030 None TRUE TRUE TRUE TRUE TRUE Not needed None
GB2312 None TRUE TRUE TRUE TRUE TRUE Not needed None
GBK None TRUE TRUE TRUE TRUE TRUE Not needed None
GEORGIAN-ACADEMY None TRUE TRUE TRUE TRUE TRUE Not needed None
GEORGIAN-PS None TRUE TRUE TRUE TRUE TRUE Not needed None
GOST_19768-74 None TRUE TRUE TRUE TRUE TRUE Not needed None
HP-GREEK8 None TRUE TRUE TRUE TRUE TRUE Not needed None
hp-roman8 None TRUE TRUE TRUE TRUE TRUE Not needed None
HP-ROMAN9 None TRUE TRUE TRUE TRUE TRUE Not needed None
HP-THAI8 None TRUE TRUE TRUE TRUE TRUE Not needed None
HP-TURKISH8 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM037 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM1004 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM1008 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM1025 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM1026 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM1046 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM1047 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM1112 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM1122 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM1123 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM1124 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM1129 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM1130 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM1132 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM1133 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM1137 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM1140 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM1141 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM1142 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM1143 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM1144 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM1145 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM1146 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM1147 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM1148 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM1149 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM1153 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM1154 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM1155 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM1156 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM1157 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM1158 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM1160 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM1161 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM1162 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM1163 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM1164 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM1166 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM1167 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM12712 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM1364 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM1388 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM1390 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM1399 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM256 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM273 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM277 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM278 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM280 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM284 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM285 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM297 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM424 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM437 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM4909 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM4971 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM500 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM5347 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM775 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM850 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM851 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM852 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM855 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM856 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM857 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM858 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM860 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM861 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM862 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM863 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM865 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM866 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM866NAV None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM868 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM869 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM870 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM871 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM891 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM901 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM902 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM903 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM9030 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM904 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM905 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM9066 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM918 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM921 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM922 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM932 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM933 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM935 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM937 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM943 None TRUE TRUE TRUE TRUE TRUE Not needed None
IBM9448 None TRUE TRUE TRUE TRUE TRUE Not needed None
IEC_P27-1 None TRUE TRUE TRUE TRUE TRUE Not needed None
ISIRI-3342 None TRUE TRUE TRUE TRUE TRUE Not needed None
ISO-10646-UCS-2 None TRUE TRUE TRUE TRUE TRUE Not needed None
ISO-2022-CN None TRUE TRUE TRUE TRUE TRUE Not needed None
ISO-2022-CN-EXT None TRUE TRUE TRUE TRUE TRUE Not needed None
ISO-2022-JP None TRUE TRUE TRUE TRUE TRUE Not needed None
ISO-2022-JP-2 None TRUE TRUE TRUE TRUE TRUE Not needed None
ISO-2022-JP-3 None TRUE TRUE TRUE TRUE TRUE Not needed None
ISO-2022-KR None TRUE TRUE TRUE TRUE TRUE Not needed None
ISO-8859-1 None TRUE TRUE TRUE TRUE TRUE Not needed None
ISO-8859-10 None TRUE TRUE TRUE TRUE TRUE Not needed None
ISO-8859-11 None TRUE TRUE TRUE TRUE TRUE Not needed None
ISO-8859-13 None TRUE TRUE TRUE TRUE TRUE Not needed None
ISO-8859-14 None TRUE TRUE TRUE TRUE TRUE Not needed None
ISO-8859-15 None TRUE TRUE TRUE TRUE TRUE Not needed None
ISO-8859-16 None TRUE TRUE TRUE TRUE TRUE Not needed None
ISO-8859-2 None TRUE TRUE TRUE TRUE TRUE Not needed None
ISO-8859-3 None TRUE TRUE TRUE TRUE TRUE Not needed None
ISO-8859-4 None TRUE TRUE TRUE TRUE TRUE Not needed None
ISO-8859-5 None TRUE TRUE TRUE TRUE TRUE Not needed None
ISO-8859-6 None TRUE TRUE TRUE TRUE TRUE Not needed None
ISO-8859-7 None TRUE TRUE TRUE TRUE TRUE Not needed None
ISO-8859-8 None TRUE TRUE TRUE TRUE TRUE Not needed None
ISO-8859-9 None TRUE TRUE TRUE TRUE TRUE Not needed None
ISO-8859-9E None TRUE TRUE TRUE TRUE TRUE Not needed None
ISO-IR-197 None TRUE TRUE TRUE TRUE TRUE Not needed None
ISO-IR-209 None TRUE TRUE TRUE TRUE TRUE Not needed None
iso-ir-90 None TRUE TRUE TRUE TRUE TRUE Not needed None
ISO_10367-box None TRUE TRUE TRUE TRUE TRUE Not needed None
ISO_6937 None TRUE TRUE TRUE TRUE TRUE Not needed None
KOI-8 None TRUE TRUE TRUE TRUE TRUE Not needed None
KOI8-R None TRUE TRUE TRUE TRUE TRUE Not needed None
KOI8-RU None TRUE TRUE TRUE TRUE TRUE Not needed None
KOI8-T None TRUE TRUE TRUE TRUE TRUE Not needed None
KOI8-U None TRUE TRUE TRUE TRUE TRUE Not needed None
KZ-1048 None TRUE TRUE TRUE TRUE TRUE Not needed None
MAC-CENTRALEUROPE None TRUE TRUE TRUE TRUE TRUE Not needed None
MAC-IS None TRUE TRUE TRUE TRUE TRUE Not needed None
MAC-SAMI None TRUE TRUE TRUE TRUE TRUE Not needed None
MAC-UK None TRUE TRUE TRUE TRUE TRUE Not needed None
macintosh None TRUE TRUE TRUE TRUE TRUE Not needed None
MIK None TRUE TRUE TRUE TRUE TRUE Not needed None
PTCP154 None TRUE TRUE TRUE TRUE TRUE Not needed None
TCVN5712-1 None TRUE TRUE TRUE TRUE TRUE Not needed None
TIS-620 None TRUE TRUE TRUE TRUE TRUE Not needed None
TSCII None TRUE TRUE TRUE TRUE TRUE Not needed None
UCS-2BE None TRUE TRUE TRUE TRUE TRUE Not needed None
UCS-2LE None TRUE TRUE TRUE TRUE TRUE Not needed None
UCS-4BE None TRUE TRUE TRUE TRUE TRUE Not needed None
UCS-4LE None TRUE TRUE TRUE TRUE TRUE Not needed None
UHC None TRUE TRUE TRUE TRUE TRUE Not needed None
US-ASCII None TRUE TRUE TRUE TRUE TRUE Not needed None
UTF-16 None TRUE TRUE TRUE TRUE TRUE Not needed None
UTF-16BE None TRUE TRUE TRUE TRUE TRUE Not needed None
UTF-16LE None TRUE TRUE TRUE TRUE TRUE Not needed None
UTF-32 None TRUE TRUE TRUE TRUE TRUE Not needed None
UTF-32BE None TRUE TRUE TRUE TRUE TRUE Not needed None
UTF-32LE None TRUE TRUE TRUE TRUE TRUE Not needed None
UTF-7 None TRUE TRUE TRUE TRUE TRUE Not needed None
UTF-7-IMAP None TRUE TRUE TRUE TRUE TRUE Not needed None
UTF-8 None TRUE TRUE TRUE TRUE TRUE Not needed None
VISCII None TRUE TRUE TRUE TRUE TRUE Not needed None
WIN-SAMI-2 None TRUE TRUE TRUE TRUE TRUE Not needed None
windows-1250 None TRUE TRUE TRUE TRUE TRUE Not needed None
windows-1251 None TRUE TRUE TRUE TRUE TRUE Not needed None
windows-1252 None TRUE TRUE TRUE TRUE TRUE Not needed None
windows-1253 None TRUE TRUE TRUE TRUE TRUE Not needed None
windows-1254 None TRUE TRUE TRUE TRUE TRUE Not needed None
windows-1255 None TRUE TRUE TRUE TRUE TRUE Not needed None
windows-1256 None TRUE TRUE TRUE TRUE TRUE Not needed None
windows-1257 None TRUE TRUE TRUE TRUE TRUE Not needed None
windows-1258 None TRUE TRUE TRUE TRUE TRUE Not needed None
Windows-31J None TRUE TRUE TRUE TRUE TRUE Not needed None
windows-874 None TRUE TRUE TRUE TRUE TRUE Not needed None