{"id":5610,"date":"2018-11-24T19:49:06","date_gmt":"2018-11-24T18:49:06","guid":{"rendered":"https:\/\/pi3g.com\/?p=5610"},"modified":"2018-11-24T19:55:28","modified_gmt":"2018-11-24T18:55:28","slug":"the-crystal-programming-language-and-encodings","status":"publish","type":"post","link":"https:\/\/pi3g.com\/de\/the-crystal-programming-language-and-encodings\/","title":{"rendered":"Die Programmiersprache Crystal und Kodierungen"},"content":{"rendered":"<p>K\u00fcrzlich hatte ich Probleme mit der korrekten Einstellung von Dateikodierungen in der Programmiersprache Crystal, weshalb ich dies hier dokumentiere.<\/p>\n<p>Crystal liest und schreibt Dateien standardm\u00e4\u00dfig in UTF-8.<\/p>\n<p>Manchmal werden Sie auf Dateien sto\u00dfen, die z.B. in der Windows-1252-Codepage kodiert sind. (Dies ist die westeurop\u00e4ische Codeseite, die z. B. f\u00fcr deutsche Umlaute usw. verwendet wird).<\/p>\n<p>Wenn die falsche Kodierung verwendet wird, werden die \"Sonderzeichen\" in den Dateien in den Ausgabedateien vermischt, oder Crystal gibt Fehler aus (~ unzul\u00e4ssige Bytefolge im UTF-8-Stream).<\/p>\n<p><strong>So stellen Sie die Kodierung f\u00fcr das Lesen einer Datei richtig ein:<\/strong><\/p>\n<blockquote>\n<pre>cpf = Datei.open(\"Dateiname\")\r\ncpf.set_encoding(\"WINDOWS-1252\", nil)\r\n\r\n#un Sie jetzt etwas mit der Datei, z.B. verwenden Sie sie als csv\r\n\r\ncpf_csv = CSV.new(cpf, headers: true, separator: ',', quote_char: '\"')<\/pre>\n<\/blockquote>\n<p>Die Kodierung wird als String an set_encoding \u00fcbergeben. Als zweiten Parameter geben Sie \"nil\" an<\/p>\n<p><strong>Hier erfahren Sie, wie Sie die Kodierung f\u00fcr das Schreiben einer Datei richtig einstellen:<\/strong><\/p>\n<blockquote>\n<pre>output_csv = Datei.open(\"Dateiname\",mode=\"w\")\r\noutput_csv.set_encoding(\"WINDOWS-1252\", nil)\r\n\r\n#un Sie jetzt etwas mit der Datei\r\noutput_csv.print \"\\\"test\\\";\\\"test\\\"\"<\/pre>\n<\/blockquote>\n<p>Es ist das gleiche Verfahren.<\/p>\n<h3>Welche Namen k\u00f6nnen als Kodierung angegeben werden?<\/h3>\n<p>Crystal verwendet die <strong>ikonv <\/strong>Anwendung, um Dateien zu \u00fcbersetzen. So k\u00f6nnen Sie Kodierungen bestimmen mit<\/p>\n<blockquote>\n<pre>iconv --Liste<\/pre>\n<\/blockquote>\n<p>Auf meinem System ergibt dies z.B. die folgende Liste:<\/p>\n<pre>437, 500, 500V1, 850, 851, 852, 855, 856, 857, 860, 861, 862, 863, 864, 865,\r\n866, 866NAV, 869, 874, 904, 1026, 1046, 1047, 8859_1, 8859_2, 8859_3, 8859_4,\r\n8859_5, 8859_6, 8859_7, 8859_8, 8859_9, 10646-1:1993, 10646-1:1993\/UCS4,\r\nANSI_X3.4-1968, ANSI_X3.4-1986, ANSI_X3.4, ANSI_X3.110-1983, ANSI_X3.110,\r\nARABISCH, ARABIC7, ARMSCII-8, ASCII, ASMO-708, ASMO_449, BALTIC, BIG-5,\r\nBIG-FIVE, BIG5-HKSCS, BIG5, BIG5HKSCS, BIGFIVE, BRF, BS_4730, CA, CN-BIG5,\r\nCN-GB, CN, CP-AR, CP-GR, CP-HU, CP037, CP038, CP273, CP274, CP275, CP278,\r\nCP280, CP281, CP282, CP284, CP285, CP290, CP297, CP367, CP420, CP423, CP424,\r\nCP437, CP500, CP737, CP770, CP771, CP772, CP773, CP774, CP775, CP803, CP813,\r\nCP819, CP850, CP851, CP852, CP855, CP856, CP857, CP860, CP861, CP862, CP863,\r\nCP864, CP865, CP866, CP866NAV, CP868, CP869, CP870, CP871, CP874, CP875,\r\nCP880, CP891, CP901, CP902, CP903, CP904, CP905, CP912, CP915, CP916, CP918,\r\nCP920, CP921, CP922, CP930, CP932, CP933, CP935, CP936, CP937, CP939, CP949,\r\nCP950, CP1004, CP1008, CP1025, CP1026, CP1046, CP1047, CP1070, CP1079,\r\nCP1081, CP1084, CP1089, CP1097, CP1112, CP1122, CP1123, CP1124, CP1125,\r\nCP1129, CP1130, CP1132, CP1133, CP1137, CP1140, CP1141, CP1142, CP1143,\r\nCP1144, CP1145, CP1146, CP1147, CP1148, CP1149, CP1153, CP1154, CP1155,\r\nCP1156, CP1157, CP1158, CP1160, CP1161, CP1162, CP1163, CP1164, CP1166,\r\nCP1167, CP1250, CP1251, CP1252, CP1253, CP1254, CP1255, CP1256, CP1257,\r\nCP1258, CP1282, CP1361, CP1364, CP1371, CP1388, CP1390, CP1399, CP4517,\r\nCP4899, CP4909, CP4971, CP5347, CP9030, CP9066, CP9448, CP10007, CP12712,\r\nCP16804, CPIBM861, CSA7-1, CSA7-2, CSASCII, CSA_T500-1983, CSA_T500,\r\nCSA_Z243.4-1985-1, CSA_Z243.4-1985-2, CSA_Z243.419851, CSA_Z243.419852,\r\nCSDECMCS, CSEBCDICATDE, CSEBCDICATDEA, CSEBCDICCAFR, CSEBCDICDKNO,\r\nCSEBCDICDKNOA, CSEBCDICES, CSEBCDICESA, CSEBCDICESS, CSEBCDICFISE,\r\nCSEBCDICFISEA, CSEBCDICFR, CSEBCDICIT, CSEBCDICPT, CSEBCDICUK, CSEBCDICUS,\r\nCSEUCKR, CSEUCPKDFMTJAPANISCH, CSGB2312, CSHPROMAN8, CSIBM037, CSIBM038,\r\nCSIBM273, CSIBM274, CSIBM275, CSIBM277, CSIBM278, CSIBM280, CSIBM281,\r\nCSIBM284, CSIBM285, CSIBM290, CSIBM297, CSIBM420, CSIBM423, CSIBM424,\r\nCSIBM500, CSIBM803, CSIBM851, CSIBM855, CSIBM856, CSIBM857, CSIBM860,\r\nCSIBM863, CSIBM864, CSIBM865, CSIBM866, CSIBM868, CSIBM869, CSIBM870,\r\nCSIBM871, CSIBM880, CSIBM891, CSIBM901, CSIBM902, CSIBM903, CSIBM904,\r\nCSIBM905, CSIBM918, CSIBM921, CSIBM922, CSIBM930, CSIBM932, CSIBM933,\r\nCSIBM935, CSIBM937, CSIBM939, CSIBM943, CSIBM1008, CSIBM1025, CSIBM1026,\r\nCSIBM1097, CSIBM1112, CSIBM1122, CSIBM1123, CSIBM1124, CSIBM1129, CSIBM1130,\r\nCSIBM1132, CSIBM1133, CSIBM1137, CSIBM1140, CSIBM1141, CSIBM1142, CSIBM1143,\r\nCSIBM1144, CSIBM1145, CSIBM1146, CSIBM1147, CSIBM1148, CSIBM1149, CSIBM1153,\r\nCSIBM1154, CSIBM1155, CSIBM1156, CSIBM1157, CSIBM1158, CSIBM1160, CSIBM1161,\r\nCSIBM1163, CSIBM1164, CSIBM1166, CSIBM1167, CSIBM1364, CSIBM1371, CSIBM1388,\r\nCSIBM1390, CSIBM1399, CSIBM4517, CSIBM4899, CSIBM4909, CSIBM4971, CSIBM5347,\r\nCSIBM9030, CSIBM9066, CSIBM9448, CSIBM12712, CSIBM16804, CSIBM11621162,\r\nCSISO4VEREINIGTESK\u00d6NIGREICH, CSISO10SCHWEDISCH, CSISO11SCHWEDISCHENAMEN,\r\nCSISO14JISC6220RO, CSISO15ITALIENISCH, CSISO16PORTUGIESISCH, CSISO17SPANISCH,\r\nCSISO18GRIECHISCH7ALT, CSISO19LATEINISCH, CSISO21DEUTSCH, CSISO25FRANZ\u00d6SISCH,\r\nCSISO27GRIECHISCH1, CSISO49INIS, CSISO50INIS8, CSISO51INISZYRILLISCH,\r\nCSISO58GB1988, CSISO60DANISCHNORWEGISCH, CSISO60NORWEGISCH1, CSISO61NORWEGISCH2,\r\nCSISO69FRANZ\u00d6SISCH, CSISO84PORTUGIESISCH2, CSISO85SPANISCH2, CSISO86UNGARISCH,\r\nCSISO88GRIECHISCH7, CSISO89ASMO449, CSISO90, CSISO92JISC62991984B, CSISO99NAPLPS,\r\nCSISO103T618BIT, CSISO111ECMACYRILLIC, CSISO121CANADIAN1, CSISO122CANADIAN2,\r\nCSISO139CSN369103, CSISO141JUSIB1002, CSISO143IECP271, CSISO150,\r\nCSISO150GREEKCCITT, CSISO151CUBA, CSISO153GOST1976874, CSISO646DANISH,\r\nCSISO2022CN, CSISO2022JP, CSISO2022JP2, CSISO2022KR, CSISO2033,\r\nCSISO5427CYRILLIC, CSISO5427CYRILLIC1981, CSISO5428GREEK, CSISO10367BOX,\r\nCSISOLATIN1, CSISOLATIN2, CSISOLATIN3, CSISOLATIN4, CSISOLATIN5, CSISOLATIN6,\r\nCSISOLATINARABISCH, CSISOLATINCYRILLISCH, CSISOLATINGRIECHISCH, CSISOLATINHEBR\u00c4ISCH,\r\nCSKOI8R, CSKSC5636, CSMACINTOSH, CSNATSDANO, CSNATSSEFI, CSN_369103,\r\nCSPC8CODEPAGE437, CSPC775BALTISCH, CSPC850MEHRSPRACHIG, CSPC862LATEINISCH-HEBR\u00c4ISCH,\r\nCSPCP852, CSSHIFTJIS, CSUCS4, CSUNICODE, CSWINDOWS31J, CUBA, CWI-2, CWI,\r\nKYRILLISCH, DE, DEC-MCS, DEC, DECMCS, DIN_66003, DK, DS2089, DS_2089, E13B,\r\nEBCDIC-AT-DE-A, EBCDIC-AT-DE, EBCDIC-BE, EBCDIC-BR, EBCDIC-CA-FR,\r\nEBCDIC-CP-AR1, EBCDIC-CP-AR2, EBCDIC-CP-BE, EBCDIC-CP-CA, EBCDIC-CP-CH,\r\nEBCDIC-CP-DK, EBCDIC-CP-ES, EBCDIC-CP-FI, EBCDIC-CP-FR, EBCDIC-CP-GB,\r\nEBCDIC-CP-GR, EBCDIC-CP-HE, EBCDIC-CP-IS, EBCDIC-CP-IT, EBCDIC-CP-NL,\r\nEBCDIC-CP-NO, EBCDIC-CP-ROECE, EBCDIC-CP-SE, EBCDIC-CP-TR, EBCDIC-CP-US,\r\nEBCDIC-CP-WT, EBCDIC-CP-YU, EBCDIC-CYRILLIC, EBCDIC-DK-NO-A, EBCDIC-DK-NO,\r\nEBCDIC-ES-A, EBCDIC-ES-S, EBCDIC-ES, EBCDIC-FI-SE-A, EBCDIC-FI-SE, EBCDIC-FR,\r\nEBCDIC-GREEK, EBCDIC-INT, EBCDIC-INT1, EBCDIC-IS-FRISS, EBCDIC-IT,\r\nEBCDIC-JP-E, EBCDIC-JP-KANA, EBCDIC-PT, EBCDIC-UK, EBCDIC-US, EBCDICATDE,\r\nEBCDICATDEA, EBCDICCAFR, EBCDICDKNO, EBCDICDKNOA, EBCDICES, EBCDICESA,\r\nEBCDICESS, EBCDICFISE, EBCDICFISEA, EBCDICFR, EBCDICISFRISS, EBCDICIT,\r\nEBCDICPT, EBCDICUK, EBCDICUS, ECMA-114, ECMA-118, ECMA-128, ECMA-CYRILLIC,\r\nECMACYRILLIC, ELOT_928, ES, ES2, EUC-CN, EUC-JISX0213, EUC-JP-MS, EUC-JP,\r\nEUC-KR, EUC-TW, EUCCN, EUCJP-MS, EUCJP-OPEN, EUCJP-WIN, EUCJP, EUCKR, EUCTW,\r\nFI, FR, GB, GB2312, GB13000, GB18030, GBK, GB_1988-80, GB_198880,\r\nGEORGIAN-ACADEMY, GEORGIAN-PS, GOST_19768-74, GOST_19768, GOST_1976874,\r\nGREEK-CCITT, GREEK, GREEK7-OLD, GREEK7, GREEK7OLD, GREEK8, GREEKCCITT,\r\nHEBR\u00c4ISCH, HP-GREEK8, HP-ROMAN8, HP-ROMAN9, HP-THAI8, HP-T\u00dcRKISCH8, HPGREEK8,\r\nHPROMAN8, HPROMAN9, HPTHAI8, HPTURKISH8, HU, IBM-803, IBM-856, IBM-901,\r\nIBM-902, IBM-921, IBM-922, IBM-930, IBM-932, IBM-933, IBM-935, IBM-937,\r\nIBM-939, IBM-943, IBM-1008, IBM-1025, IBM-1046, IBM-1047, IBM-1097, IBM-1112,\r\nIBM-1122, IBM-1123, IBM-1124, IBM-1129, IBM-1130, IBM-1132, IBM-1133,\r\nIBM-1137, IBM-1140, IBM-1141, IBM-1142, IBM-1143, IBM-1144, IBM-1145,\r\nIBM-1146, IBM-1147, IBM-1148, IBM-1149, IBM-1153, IBM-1154, IBM-1155,\r\nIBM-1156, IBM-1157, IBM-1158, IBM-1160, IBM-1161, IBM-1162, IBM-1163,\r\nIBM-1164, IBM-1166, IBM-1167, IBM-1364, IBM-1371, IBM-1388, IBM-1390,\r\nIBM-1399, IBM-4517, IBM-4899, IBM-4909, IBM-4971, IBM-5347, IBM-9030,\r\nIBM-9066, IBM-9448, IBM-12712, IBM-16804, IBM037, IBM038, IBM256, IBM273,\r\nIBM274, IBM275, IBM277, IBM278, IBM280, IBM281, IBM284, IBM285, IBM290,\r\nIBM297, IBM367, IBM420, IBM423, IBM424, IBM437, IBM500, IBM775, IBM803,\r\nIBM813, IBM819, IBM848, IBM850, IBM851, IBM852, IBM855, IBM856, IBM857,\r\nIBM860, IBM861, IBM862, IBM863, IBM864, IBM865, IBM866, IBM866NAV, IBM868,\r\nIBM869, IBM870, IBM871, IBM874, IBM875, IBM880, IBM891, IBM901, IBM902,\r\nIBM903, IBM904, IBM905, IBM912, IBM915, IBM916, IBM918, IBM920, IBM921,\r\nIBM922, IBM930, IBM932, IBM933, IBM935, IBM937, IBM939, IBM943, IBM1004,\r\nIBM1008, IBM1025, IBM1026, IBM1046, IBM1047, IBM1089, IBM1097, IBM1112,\r\nIBM1122, IBM1123, IBM1124, IBM1129, IBM1130, IBM1132, IBM1133, IBM1137,\r\nIBM1140, IBM1141, IBM1142, IBM1143, IBM1144, IBM1145, IBM1146, IBM1147,\r\nIBM1148, IBM1149, IBM1153, IBM1154, IBM1155, IBM1156, IBM1157, IBM1158,\r\nIBM1160, IBM1161, IBM1162, IBM1163, IBM1164, IBM1166, IBM1167, IBM1364,\r\nIBM1371, IBM1388, IBM1390, IBM1399, IBM4517, IBM4899, IBM4909, IBM4971,\r\nIBM5347, IBM9030, IBM9066, IBM9448, IBM12712, IBM16804, IEC_P27-1, IEC_P271,\r\nINIS-8, INIS-CYRILLIC, INIS, INIS8, INISCYRILLIC, ISIRI-3342, ISIRI3342,\r\nISO-2022-CN-EXT, ISO-2022-CN, ISO-2022-JP-2, ISO-2022-JP-3, ISO-2022-JP,\r\nISO-2022-KR, ISO-8859-1, ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5,\r\nISO-8859-6, ISO-8859-7, ISO-8859-8, ISO-8859-9, ISO-8859-9E, ISO-8859-10,\r\nISO-8859-11, ISO-8859-13, ISO-8859-14, ISO-8859-15, ISO-8859-16, ISO-10646,\r\nISO-10646\/UCS2, ISO-10646\/UCS4, ISO-10646\/UTF-8, ISO-10646\/UTF8, ISO-CELTIC,\r\nISO-IR-4, ISO-IR-6, ISO-IR-8-1, ISO-IR-9-1, ISO-IR-10, ISO-IR-11, ISO-IR-14,\r\nISO-IR-15, ISO-IR-16, ISO-IR-17, ISO-IR-18, ISO-IR-19, ISO-IR-21, ISO-IR-25,\r\nISO-IR-27, ISO-IR-37, ISO-IR-49, ISO-IR-50, ISO-IR-51, ISO-IR-54, ISO-IR-55,\r\nISO-IR-57, ISO-IR-60, ISO-IR-61, ISO-IR-69, ISO-IR-84, ISO-IR-85, ISO-IR-86,\r\nISO-IR-88, ISO-IR-89, ISO-IR-90, ISO-IR-92, ISO-IR-98, ISO-IR-99, ISO-IR-100,\r\nISO-IR-101, ISO-IR-103, ISO-IR-109, ISO-IR-110, ISO-IR-111, ISO-IR-121,\r\nISO-IR-122, ISO-IR-126, ISO-IR-127, ISO-IR-138, ISO-IR-139, ISO-IR-141,\r\nISO-IR-143, ISO-IR-144, ISO-IR-148, ISO-IR-150, ISO-IR-151, ISO-IR-153,\r\nISO-IR-155, ISO-IR-156, ISO-IR-157, ISO-IR-166, ISO-IR-179, ISO-IR-193,\r\nISO-IR-197, ISO-IR-199, ISO-IR-203, ISO-IR-209, ISO-IR-226, ISO\/TR_11548-1,\r\nISO646-CA, ISO646-CA2, ISO646-CN, ISO646-CU, ISO646-DE, ISO646-DK, ISO646-ES,\r\nISO646-ES2, ISO646-FI, ISO646-FR, ISO646-FR1, ISO646-GB, ISO646-HU,\r\nISO646-IT, ISO646-JP-OCR-B, ISO646-JP, ISO646-KR, ISO646-NO, ISO646-NO2,\r\nISO646-PT, ISO646-PT2, ISO646-SE, ISO646-SE2, ISO646-US, ISO646-YU,\r\nISO2022CN, ISO2022CNEXT, ISO2022JP, ISO2022JP2, ISO2022KR, ISO6937,\r\nISO8859-1, ISO8859-2, ISO8859-3, ISO8859-4, ISO8859-5, ISO8859-6, ISO8859-7,\r\nISO8859-8, ISO8859-9, ISO8859-9E, ISO8859-10, ISO8859-11, ISO8859-13,\r\nISO8859-14, ISO8859-15, ISO8859-16, ISO11548-1, ISO88591, ISO88592, ISO88593,\r\nISO88594, ISO88595, ISO88596, ISO88597, ISO88598, ISO88599, ISO88599E,\r\nISO885910, ISO885911, ISO885913, ISO885914, ISO885915, ISO885916,\r\nISO_646.IRV:1991, ISO_2033-1983, ISO_2033, ISO_5427-EXT, ISO_5427,\r\nISO_5427:1981, ISO_5427EXT, ISO_5428, ISO_5428:1980, ISO_6937-2,\r\nISO_6937-2:1983, ISO_6937, ISO_6937:1992, ISO_8859-1, ISO_8859-1:1987,\r\nISO_8859-2, ISO_8859-2:1987, ISO_8859-3, ISO_8859-3:1988, ISO_8859-4,\r\nISO_8859-4:1988, ISO_8859-5, ISO_8859-5:1988, ISO_8859-6, ISO_8859-6:1987,\r\nISO_8859-7, ISO_8859-7:1987, ISO_8859-7:2003, ISO_8859-8, ISO_8859-8:1988,\r\nISO_8859-9, ISO_8859-9:1989, ISO_8859-9E, ISO_8859-10, ISO_8859-10:1992,\r\nISO_8859-14, ISO_8859-14:1998, ISO_8859-15, ISO_8859-15:1998, ISO_8859-16,\r\nISO_8859-16:2001, ISO_9036, ISO_10367-BOX, ISO_10367BOX, ISO_11548-1,\r\nISO_69372, IT, JIS_C6220-1969-RO, JIS_C6229-1984-B, JIS_C62201969RO,\r\nJIS_C62291984B, JOHAB, JP-OCR-B, JP, JS, JUS_I.B1.002, KOI-7, KOI-8, KOI8-R,\r\nKOI8-RU, KOI8-T, KOI8-U, KOI8, KOI8R, KOI8U, KSC5636, L1, L2, L3, L4, L5, L6,\r\nL7, L8, L10, LATIN-9, LATEINISCH-GRIECHISCH-1, LATEINISCH-GRIECHISCH, LATIN1, LATIN2, LATIN3,\r\nLATEINISCH4, LATEINISCH5, LATEINISCH6, LATEINISCH7, LATEINISCH8, LATEINISCH9, LATEINISCH10, LATEINISCH,\r\nLATINGREEK1, MAC-CENTRALEUROPE, MAC-CYRILLIC, MAC-IS, MAC-SAMI, MAC-UK, MAC,\r\nMAKKYRILLISCH, MAKINTOSH, MAKIS, MAKUK, MAKUKRAINISCH, MIK, MS-ANSI, MS-ARAB,\r\nMS-CYRL, MS-EE, MS-GREEK, MS-HEBR, MS-MAC-CYRILLIC, MS-TURK, MS932, MS936,\r\nMSCP949, MSCP1361, MSMACCYRILLIC, MSZ_7795.3, MS_KANJI, NAPLPS, NATS-DANO,\r\nNATS-SEFI, NATSDANO, NATSSEFI, NC_NC0010, NC_NC00-10, NC_NC00-10:81,\r\nNF_Z_62-010, NF_Z_62-010_(1973), NF_Z_62-010_1973, NF_Z_62010,\r\nNF_Z_62010_1973, NO, NO2, NS_4551-1, NS_4551-2, NS_45511, NS_45512,\r\nOS2LATIN1, OSF00010001, OSF00010002, OSF00010003, OSF00010004, OSF00010005,\r\nOSF00010006, OSF00010007, OSF00010008, OSF00010009, OSF0001000A, OSF00010020,\r\nOSF00010100, OSF00010101, OSF00010102, OSF00010104, OSF00010105, OSF00010106,\r\nOSF00030010, OSF0004000A, OSF0005000A, OSF05010001, OSF100201A4, OSF100201A8,\r\nOSF100201B5, OSF100201F4, OSF100203B5, OSF1002011C, OSF1002011D, OSF1002035D,\r\nOSF1002035E, OSF1002035F, OSF1002036B, OSF1002037B, OSF10010001, OSF10010004,\r\nOSF10010010006, OSF10020025, OSF10020111, OSF10020115, OSF10020116, OSF10020118,\r\nOSF10020122, OSF10020129, OSF10020352, OSF10020354, OSF10020357, OSF10020359,\r\nOSF10020360, OSF10020364, OSF10020365, OSF10020366, OSF10020367, OSF10020370,\r\nOSF10020387, OSF10020388, OSF10020396, OSF10020402, OSF10020417, PT, PT2,\r\nPT154, R8, R9, RK1048, ROMAN8, ROMAN9, RUSCII, SE, SE2, SEN_850200_B,\r\nSEN_850200_C, SHIFT-JIS, SHIFT_JIS, SHIFT_JISX0213, SJIS-OPEN, SJIS-WIN,\r\nSJIS, SS636127, STRK1048-2002, ST_SEV_358-88, T.61-8BIT, T.61, T.618BIT,\r\nTCVN-5712, TCVN, TCVN5712-1, TCVN5712-1:1993, THAI8, TIS-620, TIS620-0,\r\nTIS620.2529-1, TIS620.2533-0, TIS620, TS-5881, TSCII, TURKISH8, UCS-2,\r\nUCS-2BE, UCS-2LE, UCS-4, UCS-4BE, UCS-4LE, UCS2, UCS4, UHC, UJIS, UK,\r\nUNICODE, UNICODEBIG, UNICODELITTLE, US-ASCII, US, UTF-7, UTF-8, UTF-16,\r\nUTF-16BE, UTF-16LE, UTF-32, UTF-32BE, UTF-32LE, UTF7, UTF8, UTF16, UTF16BE,\r\nUTF16LE, UTF32, UTF32BE, UTF32LE, VISCII, WCHAR_T, WIN-SAMI-2, WINBALTRIM,\r\nWINDOWS-31J, WINDOWS-874, WINDOWS-936, WINDOWS-1250, WINDOWS-1251,\r\nFENSTER-1252, FENSTER-1253, FENSTER-1254, FENSTER-1255, FENSTER-1256,\r\nFENSTER-1257, FENSTER-1258, WINSAMI2, WS2, YU<\/pre>\n<p>&nbsp;<\/p>\n<p>Beachten Sie, dass ein und dieselbe Kodierung mit mehreren Synonymen aufgef\u00fchrt sein kann.<\/p>\n<p>Wie bereits erw\u00e4hnt, <strong>Fenster-1252<\/strong> ist eine besonders h\u00e4ufig verwendete Kodierung f\u00fcr \"alte\" Dateien unter Windows-Systemen in Westeuropa.<\/p>\n<p>&nbsp;<\/p>\n<h3>Crystal-Referenz \/ relevante Dateien:<\/h3>\n<ul>\n<li><a title=\"https:\/\/crystal-lang.org\/api\/0.23.1\/File.html#open%28filename%2Cmode%3D%26quot%3Br%26quot%3B%2Cperm%3DDEFAULT_CREATE_MODE%2Cencoding%3Dnil%2Cinvalid%3Dnil%2C%26block%29-class-method\" href=\"https:\/\/crystal-lang.org\/api\/0.23.1\/File.html#open%28filename%2Cmode%3D%26quot%3Br%26quot%3B%2Cperm%3DDEFAULT_CREATE_MODE%2Cencoding%3Dnil%2Cinvalid%3Dnil%2C%26block%29-class-method\">https:\/\/crystal-lang.org\/api\/0.23.1\/File.html#open%28filename%2Cmode%3D%26quot%3Br%26quot%3B%2Cperm%3DDEFAULT_CREATE_MODE%2Cencoding%3Dnil%2Cinvalid%3Dnil%2C%26block%29-class-method<\/a><\/li>\n<li><a title=\"https:\/\/crystal-lang.org\/api\/0.27.0\/IO.html#set_encoding%28encoding%3AString%2Cinvalid%3ASymbol%3F%3Dnil%29-instance-method\" href=\"https:\/\/crystal-lang.org\/api\/0.27.0\/IO.html#set_encoding%28encoding%3AString%2Cinvalid%3ASymbol%3F%3Dnil%29-instance-method\">https:\/\/crystal-lang.org\/api\/0.27.0\/IO.html#set_encoding%28encoding%3AString%2Cinvalid%3ASymbol%3F%3Dnil%29-instance-method<\/a><\/li>\n<li><a title=\"https:\/\/crystal-lang.org\/api\/0.21.1\/IO\/EncodingOptions.html\" href=\"https:\/\/crystal-lang.org\/api\/0.21.1\/IO\/EncodingOptions.html\">https:\/\/crystal-lang.org\/api\/0.21.1\/IO\/EncodingOptions.html<\/a><\/li>\n<li><a title=\"https:\/\/github.com\/crystal-lang\/crystal\/blob\/c9d1eef8fde5c7a03a029d64c8483ed7b4f2fe86\/src\/io.cr#L1025\" href=\"https:\/\/github.com\/crystal-lang\/crystal\/blob\/c9d1eef8fde5c7a03a029d64c8483ed7b4f2fe86\/src\/io.cr#L1025\">https:\/\/github.com\/crystal-lang\/crystal\/blob\/c9d1eef8fde5c7a03a029d64c8483ed7b4f2fe86\/src\/io.cr#L1025<\/a><\/li>\n<li><a title=\"https:\/\/github.com\/crystal-lang\/crystal\/blob\/3c6c75e68f326bb91be35f71ae30672fd454776e\/src\/io\/encoding.cr#L3\" href=\"https:\/\/github.com\/crystal-lang\/crystal\/blob\/3c6c75e68f326bb91be35f71ae30672fd454776e\/src\/io\/encoding.cr#L3\">https:\/\/github.com\/crystal-lang\/crystal\/blob\/3c6c75e68f326bb91be35f71ae30672fd454776e\/src\/io\/encoding.cr#L3<\/a><\/li>\n<li><a title=\"https:\/\/github.com\/crystal-lang\/crystal\/blob\/master\/src\/iconv.cr\" href=\"https:\/\/github.com\/crystal-lang\/crystal\/blob\/master\/src\/iconv.cr\">https:\/\/github.com\/crystal-lang\/crystal\/blob\/master\/src\/iconv.cr<\/a><\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>K\u00fcrzlich hatte ich Probleme mit der korrekten Einstellung von Dateikodierungen in der Programmiersprache Crystal, weshalb ich dies hier dokumentiere. Crystal liest und schreibt Dateien standardm\u00e4\u00dfig in UTF-8. Manchmal st\u00f6\u00dft man auf Dateien, die z.B. in der Windows-1252-Codepage kodiert sind. (Dies ist die westeurop\u00e4ische Codeseite, die z.B. f\u00fcr Deutsch verwendet wird...<\/p>","protected":false},"author":830,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_links_to":"","_links_to_target":""},"categories":[402],"tags":[409,410,414,411,415,413,412],"class_list":["post-5610","post","type-post","status-publish","format-standard","hentry","category-development","tag-crystal","tag-encodings","tag-files","tag-iconv","tag-utf-8","tag-western-european","tag-windows-1252"],"_links":{"self":[{"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/posts\/5610","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/users\/830"}],"replies":[{"embeddable":true,"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/comments?post=5610"}],"version-history":[{"count":2,"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/posts\/5610\/revisions"}],"predecessor-version":[{"id":5624,"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/posts\/5610\/revisions\/5624"}],"wp:attachment":[{"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/media?parent=5610"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/categories?post=5610"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/tags?post=5610"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}