- Vi motiverar upp folket i Burkina Faso med den kodnings-falerade staten Côte d'Ivoire som skräckexempel: Hur blir framtiden om diktaturen eller vad det blir plötsligt inför något udda franskt tecken som resulterar i att nästan allt skrivit om land på nätet berör data-defekter av olika slag.
- Att våga lösa problem tillsammans med invandrarna istället åt eller mot dem: Dessutom ges ett fint exempel på hur man kan hantera problem med olika unicode-grupperingar runt om i världen när de märkt att du falerat i hur du kodat deras geo-region eller religion och dom är ute efter att koda tillbaka dig till sämre service eller tänkbart ned i graven (tecken-kodning är verkligen verksamhetskritiskt för vem som helst). Som bonus kommer vi utan extra åtgärd lärt oss ett kombinerat afrikanskt-/ arabiskt-språk när vi implementerat exempel-åtgärderna...
- Mer data ger desto mer IT: Slutligen löser vi kodningsproblem med filer lättare genom att sätta Emacs artificiella intelligens under egen-hantering programmatiskt (mindre egen kod och inget problem av meta-m rätt kommande, rätt teckenkodning o.s.v.). En riktigt fet klassisk AI ger en gedigen lösning på allt tänkbart runt strängar och kodning.
När nu så mycket nyhetsintresse igen riktas (i "normaliserad" mening för franska Västafrika: D.v.s. lite mindre än många andra delar av världen för samma händelser) låt oss inte glömma Burkina Faso's grannland Cote d'Ivoire [sic].
Cote d'Ivoire är nationen som är själva varningssignalen på att problem runt unicode, mer komplexa filsystem, komprimering, databaser m.m. dykt upp.
Eller som denna i unicode falerade staten vill kalla sig: Côte d'Ivoire (dutten ovanför o är en περισπώμενος - vi kan säkert ta för givet att det bara är att kopiera en lite grekisk-text i Blogger så blir det rätt i webbläsare efter publicering - d.v.s. något vi ritat runt något: Circumflex) Låt oss illustrera vad denna nation blivit känd för med några jämförelser i antal sökresultat jag får på Google.com för:
Överst i kombination med encoding varande nu både beskrivande vad unicode gör av alla tänkbara tecken som vad det är och vad standarden beskriver sig som:
- "encoding" unicode 16 bit. About 5,460,000 results
Och så kommer Cote d'Ivoire:
- "Côte d'Ivoire" unicode 16 bit. About 5,390,000 results.
I jämförelse med Sverige som inte försökt visa upp en till "IT-sida" genom att kalla sig Svärge (eller varför inte Svårge för att ge norrlänningarna med sitt svårmod lite utrymme):
- "Sweden" unicode 16 bit. About 67,200 results
Tillsammans med några mer eller mindre fungerande (eller om vi så vill periodvis i alla fall ganska trasiga unicode-stöd):
- unicode 16 bit uuencode. About 22,600 results
- unicode 16 bit "use_unicode". [Don't use]. About 2,020 results
Det är bl.a. en iso-standard:
- unicode 16 bit iso About 240,000 results
Och kallas SO/IEC 10646 för 16-bitars varianten (så många tecken hit eller dit ingen för troligt en försvarlig mängd ens använt i tryckt text innan krävs 16-bitar för att ge varje tecken en unik-representation: I kontrast med sju bitars ascii eller i ofta nog tillräckligt alfabet - [A-Za-z0-9 ]).
- unicode 10646. About 338,000 results.
Och Wiktionary förklarar när vägen mot tecken-falerad stat började:
"Usage notes
The country was originally known in English as Ivory Coast, and corresponding translations in other languages. In October 1985 the government requested that the country be known as Côte d'Ivoire in every language. Read more at Wikipedia."
Nå mången minns nog detta land. Förutom ett känt test-fall gäller ju att åtminstone alla länder, alla större städer, alla befolkningsgrupper, alla patientgrupper, alla politiska partier och organisationer, alla språk, allt särskilt intresserat, allt "känsligt" rörande hur dom själva framställs, allt som inte kan tala för dom själva (d.v.s. behöver barn, döda, brottsoffer m.fl. utan möjlighet att verifiera representeras oavsett sunda begränsningar redan innan det ska den som representerar dem se till att representera dem korrekt eftersom de har sämre möjlighet att själva reagera) o.s.v. representerade vad man bör ha respekt att hantera rätt - Medan President Ôbama kan ta ett litet fel och om inte får antas själv eller via myndigheter kunna betala någon på ambassaden som sitter och Obama-korrekturläser post-publicering), och allt och alla som kan för dig bli "störande agiterade" ensamma eller i grupp (betar vi nyhetsuppmärksammat genom att reta upp alla halv- till helfnoskiga muslimska extremister är det klokt att de försöker mörda oss för något vi begriper snarare än något mer udda esoteriskt brott p.g.a. av felkodning av namn eller religiöst koncept så vi inte verkat helt okunniga rörande vad vi kritiserat).
Annars sitter någon (kanske jag för annat) och testar lite för att dom tycker att det är kul eller för att störa din viktiga applikationer med en massa upprörda innevånare från ett land i Västafrika (om det inte är finländare, ryssarna, japanerna, kineserna, allt indiskt o.s.v.) i stavningen ganska likt något du såg på skärmen men inte hittade i Wikipedia eller på nätet som visar sig ha invandrat sista 20 åren i betydande antal till Sverige så de kan irritera dig i person (du noterar att den afrikanska medarbetaren en underleverantör till din bostadsrättsförening använder har slutat att städa rätt utanför din dörr och tittande på honom genom dörrens öga ser du att han som sopar mot den dörr, när han är klar med din trappuppgång och du öppnar dörren noterar du en massa damm och smuts sopat mot just din dörr medan alla andra dörrar är rena. Du vet nu att du kodat något engagerat felaktigt. Kanske sa Emacs att det var - eller menade att det tolkades som - Mule medan det såg helt rätt ut. Rekommenderad åtgärd jag gjorde för att visa mig särskilt trevligt intresserad av kulturen o.s.v. och försöka luska ut om det satts upp någon som grupp lokalt rörande någon tecken-kodning eller liknande jag skrivit:
- Vi lär oss lite Swahili. Mitt Afrika, Swahili, Vår biståndsminister och Spanskan i Österlandet / Väst (2011-08-31). Idag mer tillbaka i mitt gamla cyniska jag har jag nu svårt att se mig själv riktigt lägga märke till vad man råkat trampa på då eller efteråt. Men likväl ett intressant språk att ha tittat lite på även om danskdjävlar, finländare, tyskdjävlar eller fransmän ej ska förvänta sig att jag tänker lära mig något av deras språk).
- Vi intresserar oss med vårt nya språk så långt vi nu lärt: Hakuna Matata: \152343\112343\252343\212343 ???
Svarar han eller hon i unicode är det signikant. Det drabbade mig här. Eftersom jag inte brytt mig i att förbereda något jag begrep vad jag sa adderade det på riskdimensionerna ännu mer. Mär jag försökte minnas vad han svarade med måste jag uppenbart kommit fel eftersom siffer-kodningen jag mindes han svarade med ej blev något meningsfullt när jag slog upp det. Kostade mycket av kompenserande kultur-engagerade åtgärder efterföljande redan dyra Swahili. Men jag var mindre cynisk dom här åren. Förövrigt har jag råkat ut med samma problem med Swahili. Man lär sig en del bra med från parlören ganska diffusa begrep om hur annat låter. Och pratar lite och får en massa svar som man inte begriper ett dugg av och som tycks bli som agiterat och motiverat när det blir tydligt att man inte begriper dem. Vad Lejonkungens härligt köttätande idyll med vegetariska alternativ helt missade att visa något av.
Mer av dåligt hantverk i hela området teckenkodning jag och andra hederliga IT-arbetare nu lider av
I kombination med en annan väldigt vanlig ISO-standard för tecken kodning (som jag ej lyckades köpa för 0 kr från Sis men jag såg något relaterat spännande runt Fortran som behov eller intresse tidigare att lära mig ännu ej presenterat sig för: Datorgrafi - Anpassning GKS-FORTRAN som jag nog ska spara till och ha roligt med när jag förtjänat något kul som dessutom säkert många gånger kommer visa sig värdefull att ha.
Hoppas att SIS gjort något runt iso-teckenkoderna och COBOL (1950-talets programmering mycket "bandmaskin" sekventiellt i hantering av indata och vad man idag när problematiskt att få ut datat från för portning till något modernt ibland hanterar genom att fotografera av skärmen med data (som i inlägg länkat föreslaget för ett system jag ej vet eller minns nu i alla fall vad det är byggt i) och köra in i bildanalys) och C-64 BASIC V2 också).
- utf 8805 About 340,000 results
Faktiskt när man gör bildanalys på dokument med text blir hela frågan om "förslappade lyx-bokstäver" en felkälla på enorma magnituder. Minst fel får man när man bara håller sig till [A-Za-z0-9 ] samt punkter (rätt antal ungefär blanksteg är stort ej trivialt värde). Lösningar som försöker något mer än bara lite mer än så börjar ge sig på för alla jag sett föreslå rena orimligheter trots uppenbart i delar användande språkmodeller (hur vanligt nu matematiska uttryck tolkas vara: Troligen ej tolkas alls hos dem när de grekiska plötsligt dyker upp mellan ett par engelska ord). Minsta lilla defekt i avbildningen genom fotografering eller så jämförbart (eller en utmanande bakgrund till texten i en bildruta från ett filmklipp) får dem gärna att hamna fel. Ganska speciellt faktiskt eftersom man ändå hållit på en väldig massa ord med identifikation av bokstäver i text.
Återvänder vi här till Côte d'Ivoire gäller att en god språkmodell i tecken förekomst, kunskap om statistik frekvens för förekommande entiteter, samband för flergram mellan ord och kanske också hänsyn grammatik (även om jag tror för det sista att det inte ger så himla mycket för identifikation tecken).
Ett bra exempel på vardags-praktiskt fungerande såväl som ett gott råd till Côte d'Ivoire (och kanske Frankrike jag misstänksamt spekulerar bär en stor del av ansvaret för denna falerade unicode stat) har vi med Google resp. pdf-inskanningen på DTIC.mil (DTIC.mil använder Google COOP - eller vad de numera kallar det men i generation ungefär introducerad på sidan samtidigt med COOP tror jag) så vi kan samma lösning för samma dokument:
I sökresultatet:
Jag ar många gånger stört mig av hur ändå utmanande det kan vara att få över sådana här pdf-representationer av av-fotograferade till text. Helst skulle man vilja göra något som att bara markera allt och kopiera det. Om ens PDF-läsare visar bokstäverna rätt så borde man i all rimlighet få ut det rätt. Visst att det kan tortera dig många år att få flexibel mångsidighet runt unicode och allt besläktat att fungera vettigt runt indata du importerar men efter en fem år fungerar det ändå ganska vettigt i konvertering hit och dit även om av och till något på vägen falerar och man ej får den enkelhet görande det möjligt att kontrollera filerna manuellt direkt i Emacs eller annat lämpligt med rätt tecken genom att öppna dem utan råkar på diverse escape-tecken som vanligen vid problem (när jag oftare fick dem en tre år sedan) tog två bytes.
Ger vi oss på att kopiera titeln från vad nu för pdf-läsare Putty i Google Chrome har som default får vi:
A23 209 'areahandbook series!
COte d'Ivore 7
a country study,
-
0 DSTIWUh)
Distribution
f r STEMNTApprovcd uIlIc
UnlimitedI
release; 0
Konverterar vi PDF-dokumentet till text med pdftotext får vi faktiskt ett bättre resultat:
Egentligen oavsett vad jag senare kan ha skrivit om utmaningar m.m. för att lösa sådant här: Borde sådana här program egentligen inte bara fungera så man får något bra ut från dem? Jag och de flesta tycker nog det. Och det kan inte alltid vara att alla vi ska lösa problem en eller ett fåtal kunde lösa i sitt program. Det vore bara dålig tim-ekonomi och som uppskalad lösning vad som kan skada ekonomisk tillväxt och tar oss innan fordismen effektivisering av kundgrupper till standardiserade produkter effektivt tillverkade. Lite som att varje bostadsområde tillverkar en egen bil lite hur som helst beroende på vem som ska ha den.
Som man kan se från första sidan av PDF-dokumenten är en dimension av problematiken att man använder fonter i olika storlek och på olika sidor vilket är information om blanksteg m.m. konvertering ej utnyttjar (problemområdet i alla flexibilitet av vad vi skapar är emellertid knappast helt trivialt att göra nytta av i ett program som pdftotext även om man faktiskt kan hitta en del arbeten praktiskt och information tänkbart användbar om vi går mycket längre tillbaka i datahistorien till tiden när man arbetade man hålkort och önskade göra inläsning så snabb som möjlig och därför utnyttja samlad representation av sådant som grafer: Kanske. "Pikografering?").
Låt oss avsluta med ett citat från det översta sökresultatet jag tycker behandlar det hela väldigt ofullständigt men ändå en variant av hundra tusentals man troligen kan hitta när man söker på detta spännande IT-land:
"Java stores Strings internally as an array of chars, which are 16 bit unsigned values. This was based on an earlier Unicode standard that supported 64K characters.
Your String constant "Côte d'Ivoire" is in this format. If your character encoding on your XML document is correct then the String read from there will also be in the correct format. So possible errors are:
The XML document doesn't declare a character encoding;
The declared character encoding does not match the actual character encoding used.
Perhaps the XML string is being treated as US-ASCII instead of UTF-8. I would output both and eyeball them. If they look the same, compare them character by character to see where teh comparison fails. You may also want to compare the UTF8 encoding of your constant String to what's in the XML document:
byte[] bytes = "Côte d'Ivoire".getBytes("UTF-8");
It gets more complicated when you start getting into "supplementary characters". These are characters beyond the originally intended 64K ("code points" in Unicode parlance). See Supplementary Characters in the Java Platform. This isn't an issue with any of the characters you're using but it's worth noting for completeness."
Ett mer korrekt svar är att antingen har vi "smutsiga strängar", "smutsiga XML-dokument" m.m. i någon okynnes kodning i vilket fall man tar reda på vilken den är och ŕensar bort den eller behåller den, eller kodar den i något större mer omfattande. Det är som PDF-dokument: Vi tittar hur de kodat sina tecken och omvandlar det när vi förstår det till vår representation. Sådan information är angiven i filerna så det är bara att titta efter (lite p.s.s. som NTFS innehåller information om filernas förehållande, vilka rättigheter de har, hur gamla de är m.m. Bara att titta efter i din fil-hanterare så vet du).
Komplettering: Lite surt att Blogger.com verkar klara av en περισπώμενος ovan för o. Det är på så många sätt så fel när en plattform för att hjälpa oss att skriva för läsaren saboterar en enkel avslutande illustration av själva problemet. Egentligen borde man kopiera en några GB stor binär-fil för att hjälpa Blogger rätt här men det är ju också fel att jag ska sitta och vänta på det att bli klart innan man får ett fint felmeddelande att göra skärmdump av.
Låt Emacs AI lösa det
Emacs bör tror jag vara den mest omfattande och avancerade artificiella intelligensen i klassisk mening som finns tillgänglig åtminstone kostnadsfritt (troligen rörande vad som rör själva de normala användningsområdena som stränghantering m.m. den mest avancerade). Det går att hitta oerhört mycket man kan komma åt programmatiskt utan att ens behöva tvinga sig lära sig Lisp. Och vi har dessutom av och till en försvarlig mängd kunskap (i annan mening än diverse lisp-script) som ex. kodnings-varianter. Nedan "completions" på värden att sätta set-selection-coding-system. Notera varianterna för dos, unix och mac och betänk att normalt sätter det hela rätt kodning för också "utmanade" filer och brukar efter "omsparning" för sådana utmanade filer ge resultat fungerande naturligt mycket väl med Linux-miljö (dock unicode går av och till defunct i något när ny versioner kommer oavsett Linux eller annat: Nu sedan några år ska man dock ej längre behöva ha problem att lösa själv längre även om man kanske bättre försiktigt uppdaterar stödet om man har behov av stora delar av det väldigt välfungerande: En indirekt effekt av detta är att stora delar av vad som diskuteras rörande problem med unicode i Linux såväl som bl.a. Perl idag är helt defunct därför att de rör väldigt tids-lokaliserade problem).
Possible completions are: adobe-standard-encoding adobe-standard-encoding-dos adobe-standard-encoding-mac adobe-standard-encoding-unix alternativnyj alternativnyj-dos alternativnyj-mac alternativnyj-unix big5 big5-dos big5-hkscs big5-hkscs-dos big5-hkscs-mac big5-hkscs-unix big5-mac big5-unix binary chinese-big5 chinese-big5-dos chinese-big5-hkscs chinese-big5-hkscs-dos chinese-big5-hkscs-mac chinese-big5-hkscs-unix chinese-big5-mac chinese-big5-unix chinese-gb18030 chinese-gb18030-dos chinese-gb18030-mac chinese-gb18030-unix chinese-gbk chinese-gbk-dos chinese-gbk-mac chinese-gbk-unix chinese-hz chinese-hz-dos chinese-hz-mac chinese-hz-unix chinese-iso-7bit chinese-iso-7bit-dos chinese-iso-7bit-mac chinese-iso-7bit-unix chinese-iso-8bit chinese-iso-8bit-dos chinese-iso-8bit-mac chinese-iso-8bit-unix cn-big5 cn-big5-dos cn-big5-hkscs cn-big5-hkscs-dos cn-big5-hkscs-mac cn-big5-hkscs-unix cn-big5-mac cn-big5-unix cn-gb cn-gb-2312 cn-gb-2312-dos cn-gb-2312-mac cn-gb-2312-unix cn-gb-dos cn-gb-mac cn-gb-unix compound-text compound-text-dos compound-text-mac compound-text-unix compound-text-with-extensions compound-text-with-extensions-dos compound-text-with-extensions-mac compound-text-with-extensions-unix cp1047 cp1047-dos cp1047-mac cp1047-unix cp1125 cp1125-dos cp1125-mac cp1125-unix cp1250 cp1250-dos cp1250-mac cp1250-unix cp1251 cp1251-dos cp1251-mac cp1251-unix cp1252 cp1252-dos cp1252-mac cp1252-unix cp1253 cp1253-dos cp1253-mac cp1253-unix cp1254 cp1254-dos cp1254-mac cp1254-unix cp1255 cp1255-dos cp1255-mac cp1255-unix cp1256 cp1256-dos cp1256-mac cp1256-unix cp1257 cp1257-dos cp1257-mac cp1257-unix cp1258 cp1258-dos cp1258-mac cp1258-unix cp437 cp437-dos cp437-mac cp437-unix cp737 cp737-dos cp737-mac cp737-unix cp850 cp850-dos cp850-mac cp850-unix cp851 cp851-dos cp851-mac cp851-unix cp852 cp852-dos cp852-mac cp852-unix cp855 cp855-dos cp855-mac cp855-unix cp857 cp857-dos cp857-mac cp857-unix cp858 cp858-dos cp858-mac cp858-unix cp860 cp860-dos cp860-mac cp860-unix cp861 cp861-dos cp861-mac cp861-unix cp862 cp862-dos cp862-mac cp862-unix cp863 cp863-dos cp863-mac cp863-unix cp865 cp865-dos cp865-mac cp865-unix cp866 cp866-dos cp866-mac cp866-unix cp866u cp866u-dos cp866u-mac cp866u-unix cp869 cp869-dos cp869-mac cp869-unix cp874 cp874-dos cp874-mac cp874-unix cp878 cp878-dos cp878-mac cp878-unix cp932 cp932-dos cp932-mac cp932-unix cp936 cp936-dos cp936-mac cp936-unix cp949 cp949-dos cp949-mac cp949-unix cp950 cp950-dos cp950-mac cp950-unix ctext ctext-dos ctext-mac ctext-no-compositions ctext-no-compositions-dos ctext-no-compositions-mac ctext-no-compositions-unix ctext-unix ctext-with-extensions ctext-with-extensions-dos ctext-with-extensions-mac ctext-with-extensions-unix cyrillic-alternativnyj cyrillic-alternativnyj-dos cyrillic-alternativnyj-mac cyrillic-alternativnyj-unix cyrillic-iso-8bit cyrillic-iso-8bit-dos cyrillic-iso-8bit-mac cyrillic-iso-8bit-unix cyrillic-koi8 cyrillic-koi8-dos cyrillic-koi8-mac cyrillic-koi8-unix devanagari devanagari-dos devanagari-mac devanagari-unix dos ebcdic-uk ebcdic-uk-dos ebcdic-uk-mac ebcdic-uk-unix ebcdic-us ebcdic-us-dos ebcdic-us-mac ebcdic-us-unix emacs-internal emacs-mule emacs-mule-dos emacs-mule-mac emacs-mule-unix euc-china euc-china-dos euc-china-mac euc-china-unix euc-cn euc-cn-dos euc-cn-mac euc-cn-unix euc-japan euc-japan-1990 euc-japan-1990-dos euc-japan-1990-mac euc-japan-1990-unix euc-japan-dos euc-japan-mac euc-japan-unix euc-jis-2004 euc-jis-2004-dos euc-jis-2004-mac euc-jis-2004-unix euc-jisx0213 euc-jisx0213-dos euc-jisx0213-mac euc-jisx0213-unix euc-jp euc-jp-dos euc-jp-mac euc-jp-unix euc-korea euc-korea-dos euc-korea-mac euc-korea-unix euc-kr euc-kr-dos euc-kr-mac euc-kr-unix euc-taiwan euc-taiwan-dos euc-taiwan-mac euc-taiwan-unix euc-tw euc-tw-dos euc-tw-mac euc-tw-unix eucjp-ms eucjp-ms-dos eucjp-ms-mac eucjp-ms-unix gb18030 gb18030-dos gb18030-mac gb18030-unix gb2312 gb2312-dos gb2312-mac gb2312-unix gbk gbk-dos gbk-mac gbk-unix georgian-academy georgian-academy-dos georgian-academy-mac georgian-academy-unix georgian-ps georgian-ps-dos georgian-ps-mac georgian-ps-unix greek-iso-8bit greek-iso-8bit-dos greek-iso-8bit-mac greek-iso-8bit-unix hebrew-iso-8bit hebrew-iso-8bit-dos hebrew-iso-8bit-mac hebrew-iso-8bit-unix hp-roman8 hp-roman8-dos hp-roman8-mac hp-roman8-unix hz hz-dos hz-gb-2312 hz-gb-2312-dos hz-gb-2312-mac hz-gb-2312-unix hz-mac hz-unix ibm1047 ibm1047-dos ibm1047-mac ibm1047-unix ibm437 ibm437-dos ibm437-mac ibm437-unix ibm850 ibm850-dos ibm850-mac ibm850-unix ibm851 ibm851-dos ibm851-mac ibm851-unix ibm852 ibm852-dos ibm852-mac ibm852-unix ibm855 ibm855-dos ibm855-mac ibm855-unix ibm857 ibm857-dos ibm857-mac ibm857-unix ibm860 ibm860-dos ibm860-mac ibm860-unix ibm861 ibm861-dos ibm861-mac ibm861-unix ibm862 ibm862-dos ibm862-mac ibm862-unix ibm863 ibm863-dos ibm863-mac ibm863-unix ibm865 ibm865-dos ibm865-mac ibm865-unix ibm869 ibm869-dos ibm869-mac ibm869-unix ibm874 ibm874-dos ibm874-mac ibm874-unix in-is13194-devanagari in-is13194-devanagari-dos in-is13194-devanagari-mac in-is13194-devanagari-unix iso-2022-7bit iso-2022-7bit-dos iso-2022-7bit-lock iso-2022-7bit-lock-dos iso-2022-7bit-lock-mac iso-2022-7bit-lock-ss2 iso-2022-7bit-lock-ss2-dos iso-2022-7bit-lock-ss2-mac iso-2022-7bit-lock-ss2-unix iso-2022-7bit-lock-unix iso-2022-7bit-mac iso-2022-7bit-ss2 iso-2022-7bit-ss2-dos iso-2022-7bit-ss2-mac iso-2022-7bit-ss2-unix iso-2022-7bit-unix iso-2022-8bit-ss2 iso-2022-8bit-ss2-dos iso-2022-8bit-ss2-mac iso-2022-8bit-ss2-unix iso-2022-cjk iso-2022-cjk-dos iso-2022-cjk-mac iso-2022-cjk-unix iso-2022-cn iso-2022-cn-dos iso-2022-cn-ext iso-2022-cn-ext-dos iso-2022-cn-ext-mac iso-2022-cn-ext-unix iso-2022-cn-mac iso-2022-cn-unix iso-2022-int-1 iso-2022-int-1-dos iso-2022-int-1-mac iso-2022-int-1-unix iso-2022-jp iso-2022-jp-1978-irv iso-2022-jp-1978-irv-dos iso-2022-jp-1978-irv-mac iso-2022-jp-1978-irv-unix iso-2022-jp-2 iso-2022-jp-2-dos iso-2022-jp-2-mac iso-2022-jp-2-unix iso-2022-jp-2004 iso-2022-jp-2004-dos iso-2022-jp-2004-mac iso-2022-jp-2004-unix iso-2022-jp-3 iso-2022-jp-3-dos iso-2022-jp-3-mac iso-2022-jp-3-unix iso-2022-jp-dos iso-2022-jp-mac iso-2022-jp-unix iso-2022-kr iso-2022-kr-dos iso-2022-kr-mac iso-2022-kr-unix iso-8859-1 iso-8859-1-dos iso-8859-1-mac iso-8859-1-unix iso-8859-10 iso-8859-10-dos iso-8859-10-mac iso-8859-10-unix iso-8859-11 iso-8859-11-dos iso-8859-11-mac iso-8859-11-unix iso-8859-13 iso-8859-13-dos iso-8859-13-mac iso-8859-13-unix iso-8859-14 iso-8859-14-dos iso-8859-14-mac iso-8859-14-unix iso-8859-15 iso-8859-15-dos iso-8859-15-mac iso-8859-15-unix iso-8859-16 iso-8859-16-dos iso-8859-16-mac iso-8859-16-unix iso-8859-2 iso-8859-2-dos iso-8859-2-mac iso-8859-2-unix iso-8859-3 iso-8859-3-dos iso-8859-3-mac iso-8859-3-unix iso-8859-4 iso-8859-4-dos iso-8859-4-mac iso-8859-4-unix iso-8859-5 iso-8859-5-dos iso-8859-5-mac iso-8859-5-unix iso-8859-6 iso-8859-6-dos iso-8859-6-mac iso-8859-6-unix iso-8859-7 iso-8859-7-dos iso-8859-7-mac iso-8859-7-unix iso-8859-8 iso-8859-8-dos iso-8859-8-e iso-8859-8-e-dos iso-8859-8-e-mac iso-8859-8-e-unix iso-8859-8-i iso-8859-8-i-dos iso-8859-8-i-mac iso-8859-8-i-unix iso-8859-8-mac iso-8859-8-unix iso-8859-9 iso-8859-9-dos iso-8859-9-mac iso-8859-9-unix iso-latin-1 iso-latin-1-dos iso-latin-1-mac iso-latin-1-unix iso-latin-10 iso-latin-10-dos iso-latin-10-mac iso-latin-10-unix iso-latin-2 iso-latin-2-dos iso-latin-2-mac iso-latin-2-unix iso-latin-3 iso-latin-3-dos iso-latin-3-mac iso-latin-3-unix iso-latin-4 iso-latin-4-dos iso-latin-4-mac iso-latin-4-unix iso-latin-5 iso-latin-5-dos iso-latin-5-mac iso-latin-5-unix iso-latin-6 iso-latin-6-dos iso-latin-6-mac iso-latin-6-unix iso-latin-7 iso-latin-7-dos iso-latin-7-mac iso-latin-7-unix iso-latin-8 iso-latin-8-dos iso-latin-8-mac iso-latin-8-unix iso-latin-9 iso-latin-9-dos iso-latin-9-mac iso-latin-9-unix iso-safe iso-safe-dos iso-safe-mac iso-safe-unix japanese-cp932 japanese-cp932-dos japanese-cp932-mac japanese-cp932-unix japanese-iso-7bit-1978-irv japanese-iso-7bit-1978-irv-dos japanese-iso-7bit-1978-irv-mac japanese-iso-7bit-1978-irv-unix japanese-iso-8bit japanese-iso-8bit-dos japanese-iso-8bit-mac japanese-iso-8bit-unix japanese-shift-jis japanese-shift-jis-2004 japanese-shift-jis-2004-dos japanese-shift-jis-2004-mac japanese-shift-jis-2004-unix japanese-shift-jis-dos japanese-shift-jis-mac japanese-shift-jis-unix junet junet-dos junet-mac junet-unix koi8 koi8-dos koi8-mac koi8-r koi8-r-dos koi8-r-mac koi8-r-unix koi8-t koi8-t-dos koi8-t-mac koi8-t-unix koi8-u koi8-u-dos koi8-u-mac koi8-u-unix koi8-unix korean-cp949 korean-cp949-dos korean-cp949-mac korean-cp949-unix korean-iso-7bit-lock korean-iso-7bit-lock-dos korean-iso-7bit-lock-mac korean-iso-7bit-lock-unix korean-iso-8bit korean-iso-8bit-dos korean-iso-8bit-mac korean-iso-8bit-unix lao lao-dos lao-mac lao-unix latin-0 latin-0-dos latin-0-mac latin-0-unix latin-1 latin-1-dos latin-1-mac latin-1-unix latin-10 latin-10-dos latin-10-mac latin-10-unix latin-2 latin-2-dos latin-2-mac latin-2-unix latin-3 latin-3-dos latin-3-mac latin-3-unix latin-4 latin-4-dos latin-4-mac latin-4-unix latin-5 latin-5-dos latin-5-mac latin-5-unix latin-6 latin-6-dos latin-6-mac latin-6-unix latin-7 latin-7-dos latin-7-mac latin-7-unix latin-8 latin-8-dos latin-8-mac latin-8-unix latin-9 latin-9-dos latin-9-mac latin-9-unix mac mac-roman mac-roman-dos mac-roman-mac mac-roman-unix mik mik-dos mik-mac mik-unix mule-utf-8 mule-utf-8-dos mule-utf-8-mac mule-utf-8-unix next next-dos next-mac next-unix no-conversion no-conversion-multibyte old-jis old-jis-dos old-jis-mac old-jis-unix pt154 pt154-dos pt154-mac pt154-unix raw-text raw-text-dos raw-text-mac raw-text-unix roman8 roman8-dos roman8-mac roman8-unix ruscii ruscii-dos ruscii-mac ruscii-unix shift_jis shift_jis-2004 shift_jis-2004-dos shift_jis-2004-mac shift_jis-2004-unix shift_jis-dos shift_jis-mac shift_jis-unix sjis sjis-dos sjis-mac sjis-unix tcvn tcvn-5712 tcvn-5712-dos tcvn-5712-mac tcvn-5712-unix tcvn-dos tcvn-mac tcvn-unix th-tis620 th-tis620-dos th-tis620-mac th-tis620-unix thai-tis620 thai-tis620-dos thai-tis620-mac thai-tis620-unix tibetan tibetan-dos tibetan-iso-8bit tibetan-iso-8bit-dos tibetan-iso-8bit-mac tibetan-iso-8bit-unix tibetan-mac tibetan-unix tis-620 tis-620-dos tis-620-mac tis-620-unix tis620 tis620-dos tis620-mac tis620-unix undecided undecided-dos undecided-mac undecided-unix unix us-ascii us-ascii-dos us-ascii-mac us-ascii-unix utf-16 utf-16-be utf-16-be-dos utf-16-be-mac utf-16-be-unix utf-16-dos utf-16-le utf-16-le-dos utf-16-le-mac utf-16-le-unix utf-16-mac utf-16-unix utf-16be utf-16be-dos utf-16be-mac utf-16be-unix utf-16be-with-signature utf-16be-with-signature-dos utf-16be-with-signature-mac utf-16be-with-signature-unix utf-16le utf-16le-dos utf-16le-mac utf-16le-unix utf-16le-with-signature utf-16le-with-signature-dos utf-16le-with-signature-mac utf-16le-with-signature-unix utf-7 utf-7-dos utf-7-imap utf-7-imap-dos utf-7-imap-mac utf-7-imap-unix utf-7-mac utf-7-unix utf-8 utf-8-auto utf-8-auto-dos utf-8-auto-mac utf-8-auto-unix utf-8-dos utf-8-emacs utf-8-emacs-dos utf-8-emacs-mac utf-8-emacs-unix utf-8-mac utf-8-unix utf-8-with-signature utf-8-with-signature-dos utf-8-with-signature-mac utf-8-with-signature-unix vietnamese-tcvn vietnamese-tcvn-dos vietnamese-tcvn-mac vietnamese-tcvn-unix vietnamese-viqr vietnamese-viqr-dos vietnamese-viqr-mac vietnamese-viqr-unix vietnamese-viscii vietnamese-viscii-dos vietnamese-viscii-mac vietnamese-viscii-unix vietnamese-vscii vietnamese-vscii-dos vietnamese-vscii-mac vietnamese-vscii-unix viqr viqr-dos viqr-mac viqr-unix viscii viscii-dos viscii-mac viscii-unix vscii vscii-dos vscii-mac vscii-unix windows-1250 windows-1250-dos windows-1250-mac windows-1250-unix windows-1251 windows-1251-dos windows-1251-mac windows-1251-unix windows-1252 windows-1252-dos windows-1252-mac windows-1252-unix windows-1253 windows-1253-dos windows-1253-mac windows-1253-unix windows-1254 windows-1254-dos windows-1254-mac windows-1254-unix windows-1255 windows-1255-dos windows-1255-mac windows-1255-unix windows-1256 windows-1256-dos windows-1256-mac windows-1256-unix windows-1257 windows-1257-dos windows-1257-mac windows-1257-unix windows-1258 windows-1258-dos windows-1258-mac windows-1258-unix windows-936 windows-936-dos windows-936-mac windows-936-unix x-ctext x-ctext-dos x-ctext-mac x-ctext-unix x-ctext-with-extensions x-ctext-with-extensions-dos x-ctext-with-extensions-mac x-ctext-with-extensions-unix