Jump to content
php.lv forumi

phpMyAdmin Import/Export charset prob.


gurkjis

Recommended Posts

Sveiki!

Vai kaadam ar phpMyAdmin ir gadijies taa,ka Exportejot tabulas un pec tam bez izmainjam to pashu exporteto SQL failu ieimportejot atpakalj, tiek sachakareeti latvieshu/krievu chari? Tabulaam COLLATION ir cp1257_bin un latin1_swedish_ci, CHARSET=cp1257 un latin1. Connection COLLATION=utf8_general_ci. Lapai encodings ir UTF-8. Importejot noraadu UTF-8, citaadi neder.

Paskatoties SQL failu hexaa var redzet,ka specialie(lat/rus) chari nav 2 baitus gari kaa parasti,liekas dubultaa ir nokodeets. Uztaisiju PHP skriptu kas nolasa un parada SQL faila saturu,pirmstam noraadot header("Content-type: text/plain; charset=utf-8"). Vienkarshi drukajot SQL saturu, visi chari kjeburos pa diviem raadas, kad saturu laizj cauri utf8_decode($s), tad paradas taa kaa lapaa, ar dalju bojatiem chariem.

 

Meginaaju rupji converteet bojaatos charus uz vajadzigajiem, luuk skripta fragments:

 

$s = file_get_contents("x.sql");
$z = "";
for ($i=0; $i<strlen($s); $i++) {
$a = substr($s, $i, 8);
if (!strncmp($a, "\xC3\x84\x3F", 3)) {   // ā bojātais
	$z .= "\xC3\x84\xC2\x81";  // ā vajadzīgais, var dabūt kā utf8_encode("ā"); (dubulti encodets)
	$i += 2;
}
...
}
file_put_contents("y.sql", $z);

 

bet tas nostradaja tikai mana kompja serverii un vel citaa, tikai ne vajadzigajaa.

 

Domaaju,ka vaina phpMyAdmin versijaa(vajadzigaja serveri tas bij vecaks neka tajos kuros nostradaja charu laboshana),sakotneji izmantoju provaidera phpMyAdmin,veelak pats iekachaju svaigu versiju, tas neliidzeeja.

Link to comment
Share on other sites

risini nevis sekas, bet problēmas cēloni.

cp1257_bin , latin1_swedish_ci,utf8_general_ci neizskatās pēc vienādiem. vispirms visur vienādus encodingus, tad ar nebūs dieva brīnumi ka kaut kas nerādās vai pazūd.

Link to comment
Share on other sites

tas,ka tur tieshi taadi encodingi,ari man liekas nejauki, bet mans uzdevums ir pamainiit vienas lapas funkcionalitaati,tas ir cita cilveka darbs,ar kuru vairs nav kontaktu. Kaadi ir tie encodingi,taaadi ir. Exports jau izdariits un originalie dati jau aizvietoti ar bojatajiem, meginaju rupji noradiit visaam tabulaam charset=utf8 un collation=utf8_general_ci,tachu tas neko daudz nemainiija. Varbuut kkads unikaals bugs vai konfiguracijas gadijums. Dzjex kas darbojas ar to servaku tapat teica, ka saskaries ar sho problu.

Pirms exporta jau domaaju - varbuut visas tabulas paarsaukt pievienojot prefixu nosaukumam, lai kaa droshs backups turpat staav bez kaadaam encodingu konversijaam, bet neizdariiju. Turpmaak taa vajadzees dariit kjeroties klaat gatavaam dbaazeem.

Link to comment
Share on other sites

×
×
  • Create New...