aika Posted June 9, 2008 Report Posted June 9, 2008 (edited) Ir pienācis man laiks migrēt uz reālu hosteri un esmu konkrēti ieberzies ar kodējumiem. Lieki teikt ka vecajā vietā viss ok. Noeksportēju savus datus, pārnesu uz hosteri un sākās ?? visur kur mīkstiešņācošie nāk no SQL . Hosterim MySQL charset: UTF-8 Unicode (utf8) PHP codings - UTF8 Vecajā db eksportā figurē: ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; un texts izskatās šādi: mÄ“neÅ¡i php agriež m?�ne??i Mēģināju tupa exp. failā pārsaukt latin1 par UFT8 tas nenostrādāja ja exp. failā mainu mÄ“neÅ¡i uz mēneši - tad phpMyadmin tabulā redzu mēneši, bet PHP atgriež m?ne?i ja caur php iebaroju mēneši - tad php atgriež mēneši, bet Mysql tabulā stāv: mД“neЕЎi es vnk hu..eju Ja ir kādam ideja kā apčakarēt kodējumus - lūdz izsakieties. Mainīt MySQL charset es acīmredzot nevaru, bet laipni uzklausīšu kā pareizi uzsetapot charus MySQLam un tabulām! Vēl dati: phpMyadmins taisot sql updeitu vienmēr raksta: WHERE CONVERT USING utf8 tabulās avisur collation stāv: utf8_general_ci Edited June 9, 2008 by aika
Klez Posted June 9, 2008 Report Posted June 9, 2008 tabulaam tev vajag noraadiit latin1_general_ci un importeejot failu ar phpmyadmin noraadi faila kodeejumu. 2 variants: vecajaa db uztaisiit BACKUP un meeginaat tur paarkonverteet no latin uz utf8 un tad eksporteet
aika Posted June 9, 2008 Author Report Posted June 9, 2008 tabulaam tev vajag noraadiit latin1_general_ci un importeejot failu ar phpmyadmin noraadi faila kodeejumu.2 variants: vecajaa db uztaisiit BACKUP un meeginaat tur paarkonverteet no latin uz utf8 un tad eksporteet tabulām kodējums nāk līdzi exp. failā! Un tas neko nedod. Importējot arī neviens no kode'juma variantiem nepalīdz. Šo te es experimentēju pēc viena gūgles ieteikuma: tjipa ka būtība ir sekojoša: UFT texts exp./ bekapa brīdī tiek konvertēts vēlreiz par UTF, jo tabula it latin kodā. UN šis dubultais kodējums taisnā ceļā dodad importā. Mēģināju bekapu exportēt ar kode'juma norādi latin1. tad bekapā vnk. pārsaukt latin1 par UTF, kā bija ieteikts. Nope - nepalīdz!
Klez Posted June 9, 2008 Report Posted June 9, 2008 nu nee, tev pie mysqldump ir iespeeja tikt uz bck servera? kad importee ieksh mysql tev ir taada opcija: Character set of the file:
aika Posted June 10, 2008 Author Report Posted June 10, 2008 nu nee,tev pie mysqldump ir iespeeja tikt uz bck servera? kad importee ieksh mysql tev ir taada opcija: Character set of the file: nu jā - es vaaru taisīt dampu! To jau arī darīju, norādot ka kodējums ir latin lai damps netaisītu konvertāciju! Tāpat tūtē :(
Klez Posted June 10, 2008 Report Posted June 10, 2008 (edited) a ja tu dumpo uz utf8 ? mysql ir uz win vai *nix ? bet kas tev liedz pie hostera savai db likt citu kodeejumu ? vai tu gribi paariet uz utf8? Edited June 10, 2008 by Klez
aika Posted June 10, 2008 Author Report Posted June 10, 2008 a ja tu dumpo uz utf8 ?mysql ir uz win vai *nix ? bet kas tev liedz pie hostera savai db likt citu kodeejumu ? vai tu gribi paariet uz utf8? viņs jau defaultā dampo uz utf. vecais ir uz win, jaunais visdrīzākais uz nixa neredzu iespēju mainīt pie hostera kodējumu, turklāt uz vecā MySQL ir tieši tāds pats kodējums ___________ pamanīju ka vecajām tabulām izkārtojums bija latin1. Pie tabulu operācijām uzliku ka utf8. Nekas nemainījās ne vecajā galā, ne exportējuot uz jauno. Vnk turpinu hu..etj.
aika Posted June 10, 2008 Author Report Posted June 10, 2008 Vienīgias risinājums ko patlaban redzu ir vienam galam uzlikt remote access un uzģenerēt kodu kas selektē no vecās un inserto jaunajā visu pēc kārtas! :(
john.brown Posted June 10, 2008 Report Posted June 10, 2008 ja pareizi saprotu, tad tev tie dati bija iekš windows-1257 kodējuma? ja tā, tad dumpam kā pirmo rindiņu ieliec 'SET NAMES cp1257'.
aika Posted June 10, 2008 Author Report Posted June 10, 2008 ja pareizi saprotu, tad tev tie dati bija iekš windows-1257 kodējuma? ja tā, tad dumpam kā pirmo rindiņu ieliec 'SET NAMES cp1257'. !!! /*!40101 SET NAMES windows-1257 */ :) MySQL teica: #1115 - Unknown character set: 'windows' :) pareizi ir cp1257 BET kapēc tu domā ka datiem ir windows-1257, ja šāds kodējums setingos vispar nekur neparādās!? jebkurā gadījumā izmegināju arī šo gan vienā galā, gan otrā :( PS. dampa galvā stāv: -- MySQL dump 10.11 -- -- Host: localhost Database: apache -- ------------------------------------------------------ -- Server version 5.0.45-community-nt /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; /*!40103 SET TIME_ZONE='+00:00' */; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
aika Posted June 10, 2008 Author Report Posted June 10, 2008 un visvairāk mani besī šis: ja caur php iebaroju mēneši - tad php atgriež mēneši, bet Mysql tabulā stāv: mД“neЕЎi BTW ir jautājums - kā var tikt klāt šim te Д“ . Godīgi sakot vispār nav skaidrs transports kā dati tiek nodoti no tabulas php parserim. Kurā brīdī notiek kodēšanās. Kas utf divus simbolus pārtaisa par vienu un otrādāk?
john.brown Posted June 10, 2008 Report Posted June 10, 2008 Es tak arī rakstīju 'cp1257' ;) Nu, ja tev tie dati būtu utf8, tad problēmām nevajadzētu būt. Bez tam, pieredze rāda, ka iekš latin1 tauta parasti liek iekšā 1257 ;) Tad kādā kodējumā lapiņa ir? vecā, domāju.
john.brown Posted June 10, 2008 Report Posted June 10, 2008 MyAdmin tev tur var rādīt visdīvainākos kodējumus, kad skaties tabulu saturu. tu skaties, kas tev pašā skriptā nāk ārā. Iebaro dumpu papriekš tanī pat kodējumā, kāds bija vecajai lapai ar set names palīdzību. un tad skaties, lai skriptā konekcijai būtu tas pats kodējums, nu un headeri u.t.t.
aika Posted June 10, 2008 Author Report Posted June 10, 2008 Es tak arī rakstīju 'cp1257' ;) Nu, ja tev tie dati būtu utf8, tad problēmām nevajadzētu būt. Bez tam, pieredze rāda, ka iekš latin1 tauta parasti liek iekšā 1257 ;) Tad kādā kodējumā lapiņa ir? vecā, domāju. kā var uzzināt kodējumu? Visa lapa (php kods) ir UTF8. UTFs ir salikts visur kur vien varu salikt! Vēl lieta kuru nesaprotu - mainot tabulas lauka izkārtojumus nekas nemainās!!! Sākotnēji tabulās kā izkārtojums visur figurēja latin1. Taču dati, php faili - viss ir UTF. Tur aukstāk taču ir dampa headeris!
Recommended Posts