Sergey Asked:2020-10-06 13:08:05 +0000 UTC2020-10-06 13:08:05 +0000 UTC 2020-10-06 13:08:05 +0000 UTC 我在哪里可以在线查看和转换网站编码? 772 我有一个我不知道其编码的网站。 我有node.js。如何找出文本的编码以进行转换? https://zababurinsv.github.io/Michurin/maps/index.html javascript 1 个回答 Voted Best Answer DiD 2020-10-06T13:39:55Z2020-10-06T13:39:55Z 您网站的元标记中有 WINDOWS-1251 编码。并且在它发送以显示为 UTF-8 的标头中的 Web 服务器设置中。事实上——KOI8-R 编码。 我什至会给你写一个函数,它将任何文本从 KOI8-R 转换为 UTF-8。 PHP 版本。 <? function chr_utf8 ( $num ) { if ( $num < 128 ) { return chr ( $num ); } if ($num < 2048) { return chr ( ( $num >> 6 ) + 192 ) . chr ( ( $num & 63 ) + 128 ); } if ($num < 65536) { return chr ( ( $num >> 12 ) + 224 ) . chr ( ( ( $num >> 6 ) & 63 ) + 128 ) . chr ( ( $num & 63 ) + 128 ); } if ($num < 2097152) { return chr ( ( $num >> 18 ) + 240 ) . chr ( ( ( $num >> 12 ) & 63 ) + 128 ) . chr ( ( ( $num >> 6 ) & 63 ) + 128 ) . chr ( ( $num & 63 ) + 128 ); } return ''; } function koi8r_utf8 ( $str ) { $map = [ 0x80 => 0x2500, 0x81 => 0x2502, 0x82 => 0x250C, 0x83 => 0x2510, 0x84 => 0x2514, 0x85 => 0x2518, 0x86 => 0x251C, 0x87 => 0x2524, 0x88 => 0x252C, 0x89 => 0x2534, 0x8A => 0x253C, 0x8B => 0x2580, 0x8C => 0x2584, 0x8D => 0x2588, 0x8E => 0x258C, 0x8F => 0x2590, 0x90 => 0x2591, 0x91 => 0x2592, 0x92 => 0x2593, 0x93 => 0x2320, 0x94 => 0x25A0, 0x95 => 0x2219, 0x96 => 0x221A, 0x97 => 0x2248, 0x98 => 0x2264, 0x99 => 0x2265, 0x9A => 0x00A0, 0x9B => 0x2321, 0x9C => 0x00B0, 0x9D => 0x00B2, 0x9E => 0x00B7, 0x9F => 0x00F7, 0xA0 => 0x2550, 0xA1 => 0x2551, 0xA2 => 0x2552, 0xA3 => 0x0451, 0xA4 => 0x2553, 0xA5 => 0x2554, 0xA6 => 0x2555, 0xA7 => 0x2556, 0xA8 => 0x2557, 0xA9 => 0x2558, 0xAA => 0x2559, 0xAB => 0x255A, 0xAC => 0x255B, 0xAD => 0x255C, 0xAE => 0x255D, 0xAF => 0x255E, 0xB0 => 0x255F, 0xB1 => 0x2560, 0xB2 => 0x2561, 0xB3 => 0x0401, 0xB4 => 0x2562, 0xB5 => 0x2563, 0xB6 => 0x2564, 0xB7 => 0x2565, 0xB8 => 0x2566, 0xB9 => 0x2567, 0xBA => 0x2568, 0xBB => 0x2569, 0xBC => 0x256A, 0xBD => 0x256B, 0xBE => 0x256C, 0xBF => 0x00A9, 0xC0 => 0x044E, 0xC1 => 0x0430, 0xC2 => 0x0431, 0xC3 => 0x0446, 0xC4 => 0x0434, 0xC5 => 0x0435, 0xC6 => 0x0444, 0xC7 => 0x0433, 0xC8 => 0x0445, 0xC9 => 0x0438, 0xCA => 0x0439, 0xCB => 0x043A, 0xCC => 0x043B, 0xCD => 0x043C, 0xCE => 0x043D, 0xCF => 0x043E, 0xD0 => 0x043F, 0xD1 => 0x044F, 0xD2 => 0x0440, 0xD3 => 0x0441, 0xD4 => 0x0442, 0xD5 => 0x0443, 0xD6 => 0x0436, 0xD7 => 0x0432, 0xD8 => 0x044C, 0xD9 => 0x044B, 0xDA => 0x0437, 0xDB => 0x0448, 0xDC => 0x044D, 0xDD => 0x0449, 0xDE => 0x0447, 0xDF => 0x044A, 0xE0 => 0x042E, 0xE1 => 0x0410, 0xE2 => 0x0411, 0xE3 => 0x0426, 0xE4 => 0x0414, 0xE5 => 0x0415, 0xE6 => 0x0424, 0xE7 => 0x0413, 0xE8 => 0x0425, 0xE9 => 0x0418, 0xEA => 0x0419, 0xEB => 0x041A, 0xEC => 0x041B, 0xED => 0x041C, 0xEE => 0x041D, 0xEF => 0x041E, 0xF0 => 0x041F, 0xF1 => 0x042F, 0xF2 => 0x0420, 0xF3 => 0x0421, 0xF4 => 0x0422, 0xF5 => 0x0423, 0xF6 => 0x0416, 0xF7 => 0x0412, 0xF8 => 0x042C, 0xF9 => 0x042B, 0xFA => 0x0417, 0xFB => 0x0428, 0xFC => 0x042D, 0xFD => 0x0429, 0xFE => 0x0427, 0xFF => 0x042A, ]; $res = ''; $len = strlen ( $str ); for ( $i = 0; $i < $len; $i ++ ) { $ccode = ord ( $str [ $i ] ); $ucode = $ccode < 128 ? $ccode : $map[$ccode]; $res .= chr_utf8 ( $ucode ); } return $res; } JavaScript 版本。 function koi8rtoutf8 ( buf ) { if( buf instanceof ArrayBuffer ) { buf = new Uint8Array ( buf ); } if( ! Array.isArray ( buf ) ) { buf = [ ... buf ]; } const map = new Map ( [ [0x80,0x2500], [0x81,0x2502], [0x82,0x250C], [0x83,0x2510], [0x84,0x2514], [0x85,0x2518], [0x86,0x251C], [0x87,0x2524], [0x88,0x252C], [0x89,0x2534], [0x8A,0x253C], [0x8B,0x2580], [0x8C,0x2584], [0x8D,0x2588], [0x8E,0x258C], [0x8F,0x2590], [0x90,0x2591], [0x91,0x2592], [0x92,0x2593], [0x93,0x2320], [0x94,0x25A0], [0x95,0x2219], [0x96,0x221A], [0x97,0x2248], [0x98,0x2264], [0x99,0x2265], [0x9A,0x00A0], [0x9B,0x2321], [0x9C,0x00B0], [0x9D,0x00B2], [0x9E,0x00B7], [0x9F,0x00F7], [0xA0,0x2550], [0xA1,0x2551], [0xA2,0x2552], [0xA3,0x0451], [0xA4,0x2553], [0xA5,0x2554], [0xA6,0x2555], [0xA7,0x2556], [0xA8,0x2557], [0xA9,0x2558], [0xAA,0x2559], [0xAB,0x255A], [0xAC,0x255B], [0xAD,0x255C], [0xAE,0x255D], [0xAF,0x255E], [0xB0,0x255F], [0xB1,0x2560], [0xB2,0x2561], [0xB3,0x0401], [0xB4,0x2562], [0xB5,0x2563], [0xB6,0x2564], [0xB7,0x2565], [0xB8,0x2566], [0xB9,0x2567], [0xBA,0x2568], [0xBB,0x2569], [0xBC,0x256A], [0xBD,0x256B], [0xBE,0x256C], [0xBF,0x00A9], [0xC0,0x044E], [0xC1,0x0430], [0xC2,0x0431], [0xC3,0x0446], [0xC4,0x0434], [0xC5,0x0435], [0xC6,0x0444], [0xC7,0x0433], [0xC8,0x0445], [0xC9,0x0438], [0xCA,0x0439], [0xCB,0x043A], [0xCC,0x043B], [0xCD,0x043C], [0xCE,0x043D], [0xCF,0x043E], [0xD0,0x043F], [0xD1,0x044F], [0xD2,0x0440], [0xD3,0x0441], [0xD4,0x0442], [0xD5,0x0443], [0xD6,0x0436], [0xD7,0x0432], [0xD8,0x044C], [0xD9,0x044B], [0xDA,0x0437], [0xDB,0x0448], [0xDC,0x044D], [0xDD,0x0449], [0xDE,0x0447], [0xDF,0x044A], [0xE0,0x042E], [0xE1,0x0410], [0xE2,0x0411], [0xE3,0x0426], [0xE4,0x0414], [0xE5,0x0415], [0xE6,0x0424], [0xE7,0x0413], [0xE8,0x0425], [0xE9,0x0418], [0xEA,0x0419], [0xEB,0x041A], [0xEC,0x041B], [0xED,0x041C], [0xEE,0x041D], [0xEF,0x041E], [0xF0,0x041F], [0xF1,0x042F], [0xF2,0x0420], [0xF3,0x0421], [0xF4,0x0422], [0xF5,0x0423], [0xF6,0x0416], [0xF7,0x0412], [0xF8,0x042C], [0xF9,0x042B], [0xFA,0x0417], [0xFB,0x0428], [0xFC,0x042D], [0xFD,0x0429], [0xFE,0x0427], [0xFF,0x042A], ] ); return buf.map ( c => c < 127 ? c : map.get ( c ) || 0 ) .map ( c => String.fromCharCode ( c ) ).join ( '' ); }
您网站的元标记中有 WINDOWS-1251 编码。并且在它发送以显示为 UTF-8 的标头中的 Web 服务器设置中。事实上——KOI8-R 编码。
我什至会给你写一个函数,它将任何文本从 KOI8-R 转换为 UTF-8。
PHP 版本。
JavaScript 版本。