Fukntsii Umwandlung UTF8-Win, Win-UTF8
Manchmal gibt es Momente, in denen Sie PHP-Daten von einer Kodierung in eine andere neu zu kodieren müssen.
In diesem Artikel werden einige Funktionen beschreiben, die ich nicht nur verwendet.
Die Funktionen und Skripten sind nicht von mir geschrieben, aber die Arbeit erfolgreich und oft helfen mit php-Javascript-Interaktionen.
Somit ist die Umwandlung von utf-8 auf Windows-1251 und zurück:
Die erste Funktion von UTF-8 in CP1251
Funktion utf8_win1 ($ s) { $ S = strtr ($ s, array ( "\ Xd0 \ xb0" => "und", "\ Xd0 \ x90" => "A", "\ Xd0 \ xB1" => "b", "\ Xd0 \ x91 "=>" B " "\ XD0 \ xB2" => "in", "\ Xd0 \ x92" => "Die", "\ Xd0 \ xB3" => "g", "\ Xd0 \ x93" => "G", "\ xd0 \ xB4 "=>" q " "\ XD0 \ x94" => "D", "\ Xd0 \ xB5" => "e", "\ Xd0 \ x95" => "E", "\ xd1 \ x91" => "e", "\ xd0 \ x81 "=>" E " "\ XD0 \ xB6" => "w", "\ Xd0 \ x96" => "F", "\ Xd0 \ xB7" => "s", "\ Xd0 \ x97" => "Z", "\ xd0 \ XB8 "=>" und " "\ XD0 \ x98" => "AND", "\ Xd0 \ XB9" => "zweite", "\ Xd0 \ x99" => "J", "\ Xd0 \ XBA" => "auf", "\ xd0 \ X9a "=>" K " "\ XD0 \ xBB" => "L", "\ Xd0 \ X9b" => "A", "\ Xd0 \ XBC" => "m", "\ Xd0 \ x9C" => "M", "\ xd0 \ XBD "=>" n " "\ XD0 \ x9D" => "H", "\ Xd0 \ xbe" => "über", "\ Xd0 \ x9E" => "Über", "\ Xd0 \ xBF" => "n" "\ xd0 \ x9F "=>" P " "\ XD1 \ x80" => "P", "\ Xd0 \ xA0" => "P", "\ xd1 \ x81" => "mit", "\ Xd0 \ xA1" => "C", "\ xd1 \ x82 "=>" m " "\ XD0 \ xA2" => "T", "\ xd1 \ x83" => "y", "\ Xd0 \ XA3" => "Y", "\ xd1 \ x84" => "f", "\ xd0 \ XA4 "=>" F " "\ XD1 \ x85" => "x", "\ Xd0 \ XA5" => "X", "\ xd1 \ x86" => "n", "\ Xd0 \ XA6" => "C", "\ xd1 \ x87 "=>" h " "\ XD0 \ xA7" => "B", "\ xd1 \ x88" => "w", "\ Xd0 \ xA8" => "W", "\ xd1 \ x89" => "u", "\ xd0 \ xA9 "=>" Y ", "\ XD1 \ x8A" => "b", "\ Xd0 \ xAA" => "b", "\ xd1 \ X8b" => "s", "\ Xd0 \ xab" => "Y", "\ xd1 \ x8C "=>" s " "\ XD0 \ XAC" => "L", "\ xd1 \ X8D" => "e", "\ Xd0 \ xAD" => "E", "\ xd1 \ X8E" => "w", "\ xd0 \ xAE "=>" U " "\ XD1 \ X8F" => "I", "\ Xd0 \ XAF" => "I")); $ S zurückkehren; }
Die Funktion des zweiten in CP1251 utf8
Funktion utf8_win ($ s) {$ out = ""; $ C1 = ""; $ Byte2 = false; for ($ c = 0; $ c <strlen ($ s); $ c ++) {$ i = ord ($ s [$ c]); . Wenn $ ($ i <= 127) = $ s out [$ c]; if ($ byte2) {$ new_c2 = ($ c1 & 3) * 64 + ($ i & 63); $ New_c1 = ($ c1 >> 2) und 5; $ New_i = $ new_c1 * 256 + $ new_c2; if ($ new_i == 1025) {out_i $ = 168; } Else {if ($ new_i == 1105) {out_i $ = 184; } Else {$ out_i = $ new_i-848; }} $ Out = chr ($ out_i) .; $ Byte2 = false; } If (($ i >> 5) == 6) {$ c1 = $ i; $ Byte2 = true; }} $ Zurück heraus; }
Die Funktion der ersten Windows-1251 auf UTF-8
Funktion win_utf8 ($ in_text) { $ Output = ""; $ Andere [1025] = "E"; $ Andere [1105] = "e"; $ Andere [1028] = "E"; $ Andere [1108] = "E"; $ Andere [1030] = "I"; $ Andere [1110] = "i"; $ Andere [1031] = "Ji"; $ Andere [1111] = "Ji"; for ($ i = 0; $ i strlen ($ in_text) <; $ i ++) { if (ord ($ in_text {$ i})> 191) { .. $ Output = "& #" (ord ($ in_text {$ i}) + 848). ";" } Else { if (array_search ($ in_text {$ i}, $ andere) === false) { . $ Output = $ in_text {$ i}; } Else { $ Output = "& #" array_search ($ in_text {$ i}, $ andere) ... ";" } } } return $ Ausgang; }
Umcodierung Funktion von Windows-1251 auf utf-8
Früher verwendete iconv ( "CP1251?" UTF-8?, $ Text_for_convert), aber wie Sie wissen iconv auf dem Server eine große Last gibt und ist langsamer als die Funktion unten zur Verfügung gestellt.
Abandon iconv selbst dann gezwungen, dass irgendwann, wenn die Transcodierung von Windows-1251 auf UTF-8 ohne ersichtlichen Grund, war diese Funktion die Rückkehr eine leere Zeichenkette.
!!! Wenn der Swap $ in_arr und out_arr $, wird die Funktion "umgekehrt" arbeiten, das heißt wird UTF-8-CP-1251 konvertieren.
Funktion cp1251_to_utf8 ($ txt) { $ In_arr = array ( chr (208), chr (192), chr (193), chr (194) chr (195), chr (196), chr (197), chr (168) chr (198), chr (199), chr (200), chr (201) chr (202), chr (203), chr (204), chr (205) chr (206), chr (207), chr (209), chr (210) chr (211), chr (212), chr (213), chr (214) chr (215), chr (216), chr (217), chr (218) chr (219), chr (220), chr (221), chr (222) chr (223), chr (224), chr (225), chr (226) chr (227), chr (228), chr (229), chr (184) chr (230), chr (231), chr (232), chr (233) chr (234), chr (235), chr (236), chr (237) chr (238), chr (239), chr (240), chr (241) chr (242), chr (243), chr (244), chr (245) chr (246), chr (247), chr (248), chr (249) chr (250), chr (251), chr (252), chr (253) chr (254), chr (255) ); $ Out_arr = array ( chr (208) .CHR (160), chr (208) .CHR (144), chr (208) .CHR (145) chr (208) .CHR (146), chr (208) .CHR (147), chr (208) .CHR (148) chr (208) .CHR (149), chr (208) .CHR (129), chr (208) .CHR (150) chr (208) .CHR (151), chr (208) .CHR (152), chr (208) .CHR (153) chr (208) .CHR (154), chr (208) .CHR (155), chr (208) .CHR (156) chr (208) .CHR (157), chr (208) .CHR (158), chr (208) .CHR (159) chr (208) .CHR (161), chr (208) .CHR (162), chr (208) .CHR (163) chr (208) .CHR (164), chr (208) .CHR (165), chr (208) .CHR (166) chr (208) .CHR (167), chr (208) .CHR (168), chr (208) .CHR (169) chr (208) .CHR (170), chr (208) .CHR (171), chr (208) .CHR (172) chr (208) .CHR (173), chr (208) .CHR (174), chr (208) .CHR (175) chr (208) .CHR (176), chr (208) .CHR (177), chr (208) .CHR (178) chr (208) .CHR (179), chr (208) .CHR (180), chr (208) .CHR (181) chr (209) .CHR (145), chr (208) .CHR (182), chr (208) .CHR (183) chr (208) .CHR (184), chr (208) .CHR (185), chr (208) .CHR (186) chr (208) .CHR (187), chr (208) .CHR (188), chr (208) .CHR (189) chr (208) .CHR (190), chr (208) .CHR (191), chr (209) .CHR (128) chr (209) .CHR (129), chr (209) .CHR (130), chr (209) .CHR (131) chr (209) .CHR (132), chr (209) .CHR (133), chr (209) .CHR (134) chr (209) .CHR (135), chr (209) .CHR (136), chr (209) .CHR (137) chr (209) .CHR (138), chr (209) .CHR (139), chr (209) .CHR (140) chr (209) .CHR (141), chr (209) .CHR (142), chr (209) .CHR (143) ); $ Txt = str_replace ($ in_arr, $ out_arr, $ txt); return $ txt; }
Kommentare
im Auge kommentierte halten , dass der Inhalt und der Ton Ihrer Nachrichten , die Gefühle von echten Menschen verletzen können, Respekt und Toleranz gegenüber seinen Gesprächspartnern, auch wenn Sie Ihr Verhalten in Bezug auf die Meinungsfreiheit und die Anonymität des Internets, ändert ihre Meinung nicht teilen, nicht nur virtuell, sondern realen Welt. Alle Kommentare werden aus dem Index, Spam - Kontrolle versteckt.