Avatar billede learner Praktikant
21. september 2005 - 09:28 Der er 70 kommentarer og
1 løsning

Lave mysql database om så den bruger UTF-8

Hej, jeg har en database og jeg vil ændre den til utf-8
Jeg har læst lidt om det men kun på engelsk. Er der nogen der kan hjælpe mig med det.

årsag:
Jeg vil gerne gemme allemulige tegn i databasen. feks polske, kinesiske, russiske, engelske og danske tegn.
Avatar billede coderdk Praktikant
21. september 2005 - 09:33 #1
Det kræver MySQL mindste version v4.1

CREATE DATABASE dindatabase CHARACTER SET utf8;
Avatar billede learner Praktikant
21. september 2005 - 09:52 #2
Ok, kan jeg ik ændre en eksisterende db til utf-8?

eller er det bedre at tage backup og oprette den nye utf8 db og så indlæse backuppen.
Avatar billede coderdk Praktikant
21. september 2005 - 13:04 #3
Tror ikke du kan konvertere, lav en backup og restore den til en utf8 database :)
Avatar billede learner Praktikant
21. september 2005 - 13:06 #4
Jeps, det tænkte jeg nok. :o)

Når jeg så har skabt den nye db med UTF-8, så kan jeg gemme allemulige forskellige teg deri. er det ikke korrekt forstået?
Avatar billede coderdk Praktikant
21. september 2005 - 13:14 #5
Det skulle du meget gerne, ja :-D
Avatar billede learner Praktikant
21. september 2005 - 13:16 #6
Så er det vel bare med at komme i sving :o)
Jeg vender tilbage når det er gjort og testet.
Avatar billede coderdk Praktikant
21. september 2005 - 13:17 #7
Held og lykke ;)
Avatar billede learner Praktikant
21. september 2005 - 14:48 #8
Kan det passe at jeg kun har version 4 når phpinfo() siger dette:
Client API version  4.0.24
Avatar billede coderdk Praktikant
21. september 2005 - 14:49 #9
Yeps...
Avatar billede learner Praktikant
21. september 2005 - 14:55 #10
æv. jeg skal love for at jeg får nogle udfordringer med det her så. damn.
Avatar billede coderdk Praktikant
21. september 2005 - 15:00 #11
hhehe yeah det surt :\
Avatar billede learner Praktikant
21. september 2005 - 15:02 #12
Kan man bede sin udbyder om en nyere version? Nej vel.

Findes der en anden måde at gemme underlige tegn på? udover entities eller hvad de nu hedder :o)
Avatar billede coderdk Praktikant
21. september 2005 - 15:05 #13
Så skal det måske være at gemme mb_string/base64_encoded text? (Er ikke sikker på at mb_string er nødvendigt)
Jeg er lidt træt lige nu, så min kreative tankegang er lidt sløv ;-D
Avatar billede learner Praktikant
21. september 2005 - 15:09 #14
tusind tak alligevel :o)
jeg tror du ska ta en pause :o)

jeg vil ihvertfald holde pause nu og se en film. for nu troede jeg endelig at jeg havde fundet en løsning. men ak nej

ja måske skulle jeg kigge mere på mb_string og base64_encoded igen
Avatar billede learner Praktikant
21. september 2005 - 19:30 #15
Jeg fandt dog ikke en måde at sende mail() med feks polske tegn()
Nogen der kan fortælle mig hvordan jeg skal gøre det?
Avatar billede learner Praktikant
21. september 2005 - 19:30 #16
undskyld. bare glem sidste indlæg. det var til et andet spm.
Avatar billede learner Praktikant
24. september 2005 - 10:29 #17
opsummering:
mysql version er 4.024, altså ikke muligt at ændre til utf-8 charset.
Jeg har fået min side til at arbejde i utf-8 og jeg gemmer utf-8 tegnene i databasen.
phpmyadmin viser umiddelbart tegnene fint når jeg vælger dansk(utf-8)
udtræk vises også umiddelbart fint når der udskrives fra databasen.
med andre ord, så ser alting fint ud.
Men jeg kan bare ik forstå det, for der står alle steder på nettet at det ikke kan lade sig gøre at gemme utf-8 i min mysql version uden at encode eller erstatte specialtegn med andre tegn.

Jeg spørger:
Kan man bede sin udbyder om en nyere version? (surftown)
Hvordan laver man en test om alle tegnene virker som de skal.
Er det virkeligt muligt at det virker? forklaring??
Kan mysql query's virke med WHERE og ORDER BY og LIKE som det skal?
Hvad skal jeg være obs på?
Avatar billede coderdk Praktikant
24. september 2005 - 10:49 #18
Hvis jeg skulle gætte, så virker det - Men uden UTF-8 funktionalitet - Altså, du kan ikek sortere osv på unicode-tegn, da databasen vil se dem som to forskellige tegn... Dette er et 70% gæt.
Avatar billede learner Praktikant
24. september 2005 - 21:02 #19
Jeg overvejer en anden mulighed. kan det lade sig gøre at lave en ekstern database (nyere end ver 4.1) og bruge den. Det er da muligt ik? Hvordan? :o)
Avatar billede coderdk Praktikant
24. september 2005 - 22:34 #20
Der kræves bare 4.1 eller nyere - Så skal du have en host som tillader eksterne forbindelser...
Avatar billede learner Praktikant
24. september 2005 - 22:38 #21
ok, jeg skal finde en udbyder/host, som tillader eksterne forbindelser. Thats it??? Ikke andet? Ingen specielle koder eller noget?

Kender du en udbyder/host der tilbyder det?
Avatar billede coderdk Praktikant
24. september 2005 - 22:41 #22
Ikke hvad jeg ved af... Det er nok endda smartere så helt at skifte udbyder...

Jeg tog en kort google:

http://google.com/search?q=mysql+4.1+webhotel+site%3A.dk

Der lader til at være flere :)
Avatar billede learner Praktikant
24. september 2005 - 22:47 #23
er version 4.1 ustabil eller noget? for der står meget om test af 4.1 og sådan noget.
Avatar billede coderdk Praktikant
24. september 2005 - 22:50 #24
Den skulle eftersigende være MEGET stabil. Det er deres seneste, anbefalede "stable" release. Der er efterhånden mange der bruger og eksperimenterer med v5.0...
Jeg ville *ingen* skrupler have ved at gå over til 4.1!
Avatar billede coderdk Praktikant
24. september 2005 - 22:51 #25
Check lige om din nuværende host har mysqli-extension'en installeret... Hvis de har, så har de sikkert *også* 4.1 ;)
Avatar billede learner Praktikant
24. september 2005 - 22:54 #26
Ok :o)

>Check lige om din nuværende host har mysqli-extension'en installeret
Skal jeg bare skrive til dem og sørge eller hvordan?
Avatar billede coderdk Praktikant
24. september 2005 - 22:55 #27
bare check:

<?php phpinfo(INFO_MODULES); ?>
Avatar billede coderdk Praktikant
24. september 2005 - 22:57 #28
Eller:

<?php print_r(get_loaded_extensions()); ?>

:)
Avatar billede coderdk Praktikant
24. september 2005 - 22:59 #29
Eller: <?php echo ( extension_loaded('gd') ? 'YES!!' : 'Desværre' ); ?>

Det er dog ingen garanti, skal lige siges - Hvis den er der, skal du nok tage kontakt til dem, og høre om de tilbyder mysql 4.1 eller højere (men der er ingen grund til at de har mysqli-extension'en på hvis de *ikke* tilbyder dette).
Avatar billede coderdk Praktikant
24. september 2005 - 22:59 #30
Erh, der skulle have stået: <?php echo ( extension_loaded('mysqli') ? 'YES!!' : 'Desværre' ); ?>

I stedet.. :P
Avatar billede learner Praktikant
24. september 2005 - 23:02 #31
med <?php echo ( extension_loaded('mysqli') ? 'YES!!' : 'Desværre' ); exit;?>

svar: desværre :o(
Avatar billede learner Praktikant
24. september 2005 - 23:02 #32
Men rart at vide :o)
Avatar billede learner Praktikant
24. september 2005 - 23:28 #33
Har du ik et par gode forslag til valg af udbyder. Skal jeg ikke holde mig fra de gratis?
Avatar billede coderdk Praktikant
24. september 2005 - 23:32 #34
Jo, hvis det er til noget seriøst er det helt klart bedst at vælge nogen der koster penge - Så er det bare hvem :) Den eneste jeg lige umiddelbart kender på den google, er azero - så også web10 har v4.1.x
Avatar billede coderdk Praktikant
24. september 2005 - 23:33 #35
(Jeg har ingen erfaringer med nogle af dem, jeg har en server hjemme og en i et TDC-hostingcenter så jeg bruger ikke andet)
Avatar billede learner Praktikant
24. september 2005 - 23:38 #36
nej, jeg tænkte nok du selv nørder med det :o)
Tak alligevel. Jeg vil kigge på det og så finder jeg sikkert os en løsning på det :o)

Godnat :o)
Avatar billede learner Praktikant
24. september 2005 - 23:46 #37
Heh :o)
kom lige forbi http://www.i123.dk/index.php
prøv lige at se hvad der står (skjult) i bunden af deres side :o)
Avatar billede coderdk Praktikant
24. september 2005 - 23:54 #38
Hvad? Det der "Webhotel 500 MB business hostingpr. md. Billig w...etc.etc.etc"?
Avatar billede learner Praktikant
24. september 2005 - 23:57 #39
nej helt i bunden allernederst, der har de skjult tekst 'webhotel Webhotel webhoteller webh' osv
Er det ik lidt amatøragtigt at gøre sådan :o)
Avatar billede learner Praktikant
24. september 2005 - 23:59 #40
jo da forresten, det var det du skrev :o)
Nåh, men jeg synes bare det er lidt amatøragtigt

godnat og tak for idag :o)
Avatar billede coderdk Praktikant
25. september 2005 - 00:02 #41
hehhe jo bestemt ;)

Selvtak, og sov godt!
Avatar billede learner Praktikant
25. september 2005 - 18:22 #42
Kan jeg selv installere en nyere version på serveren????
Avatar billede coderdk Praktikant
25. september 2005 - 22:07 #43
Det kan du som regel ikke - Så skal du normalt have din egen server...
Avatar billede learner Praktikant
25. september 2005 - 22:16 #44
Nåh ok. Men jeg har vel egentligt os løst dette spm nu. Løsningen er at jeg får mysql database(rne) ved en anden udbyder. Det er der nok ik noget svært i at få til at virke :o)

Du skal have mange tak for din støtte og hjælp. Det har været super skønt med din hjælp i denne uge coderdk. Det har været en meget svær uge for mig og du har virkelig gjort en stor forskel.

TUSIND TAK :o)

Smid et svar og få velfortjente point :o)
Avatar billede coderdk Praktikant
25. september 2005 - 22:55 #45
Så lidt - Håber det kommer til at fungere :)
Avatar billede learner Praktikant
26. september 2005 - 06:58 #46
Ellers skriver jeg sikkert :o)
Avatar billede learner Praktikant
26. september 2005 - 08:09 #47
Første spm :o)
skal jeg ikke lave alle mine tabeller med CHARACTER SET utf8
Avatar billede learner Praktikant
26. september 2005 - 08:23 #48
Første spm :o)
skal jeg ikke lave alle mine tabeller med CHARACTER SET utf8

ps Jeg overvejer mest http://danhost.dk
Avatar billede learner Praktikant
26. september 2005 - 09:47 #49
Er det ik sådan her det skal gøres:
CREATE TABLE this_table(
  email varchar(50) NOT NULL,
  name varchar(50) NOT NULL,
  PRIMARY KEY (email)
) CHARACTER SET utf8;

...ved alle mine tabeller?

Har læst om 'collation' nogle steder. Ved ik hvad det er. Er det noget jeg skal have med/sætte mig ind i?

ps Jeg overvejer mest http://danhost.dk - har du en mening om dem coderdk?
Avatar billede coderdk Praktikant
26. september 2005 - 12:36 #50
Ja, jeg har ikke rodet så meget med det selv, men prøv at kigge på:

  http://dev.mysql.com/doc/mysql/en/charset.html

Jeg kender ikke danhost, og kan ikke lige finde dem på kob.dk ;P
Avatar billede coderdk Praktikant
26. september 2005 - 12:37 #51
Ok, de var på krak.dk :) Måske er det ok :)
Avatar billede learner Praktikant
27. september 2005 - 12:38 #52
Ok, nu har jeg oprettet et webhotel ved danhost.dk og det er sat igang. Jeg har oprettet databasen i utf-8 format og har indlæst min backup ind som latin1. Alt ser perfekt ud. Så langt så godt :o) puha

Problem. Danhost siger at jeg sagtens kan tilgå udefra og surftown siger også at det er muligt på denne måde. Så jeg har lavet det hele og ændret min forbindelse til mysql. Jeg er rimelig sikker på at jeg har gjort det korrekt. men jeg får denne fejl:

Client does not support authentication protocol requested by server; consider upgrading MySQL client

har googlet lidt men jeg har ik fundet en forklaring/hjælp.

Please hjælp mig :o)
Avatar billede coderdk Praktikant
27. september 2005 - 12:39 #53
Ja, det er et problem. Surftown's klient er jo til 4.0.x :( Hvorfor flyttede du ikke alt?
Avatar billede learner Praktikant
27. september 2005 - 12:40 #54
jeg logger på således:
mysql_select_db($database, mysql_connect($Host_ip, $User, $Password)) or...
Avatar billede learner Praktikant
27. september 2005 - 12:41 #55
damn. hvad? Hvad er problemet?
Avatar billede coderdk Praktikant
27. september 2005 - 12:46 #56
Jeg tror man skal bruge mysqli-extension'en... Du kan prøve at høre surftown om de ikke vil installere den extension, så du kan tilgå en ekstern mysql 4.1.x database...
Avatar billede learner Praktikant
27. september 2005 - 12:47 #57
ok :o)
Avatar billede learner Praktikant
27. september 2005 - 13:15 #58
Jeg fatter det overhovedet ik. Kan det ik være ligemeget hvad surftown har for en version. Jeg køber jo mysql ved danhost.
Avatar billede coderdk Praktikant
27. september 2005 - 13:16 #59
Ja, men på din webhost, skal der bruges en klient til at forbinde til serveren ;) Det sker ikke på magisk vis ;-D
Avatar billede learner Praktikant
27. september 2005 - 13:25 #60
er det et stort arbejde for dem at installere den ekstension?
Avatar billede learner Praktikant
28. september 2005 - 15:27 #61
Tror du at det et stort arbejde for surftown at installere den mysqli-ekstension?
Avatar billede learner Praktikant
28. september 2005 - 17:09 #62
Smider du et svar coderdk
Avatar billede coderdk Praktikant
28. september 2005 - 21:53 #63
Næh det tror jeg ikke - Ikke hvis de kører med dynamisk loadede extensions :)
Avatar billede learner Praktikant
29. september 2005 - 11:37 #64
Surftown vil ikke installere extensionen. De siger at det kræver php 5
Så nu må jeg igang med at flytte alt mit habengut fra surftown til ?????
Avatar billede coderdk Praktikant
29. september 2005 - 11:40 #65
Det er sq da også rigtigt... Det er PHP5 only :\  Hvad med der hvor du har databasen? Danhost?
Avatar billede learner Praktikant
29. september 2005 - 11:48 #66
er ved at kigge på det. sammenligner med wannafind, tablix lige nu
Avatar billede learner Praktikant
30. september 2005 - 18:31 #67
Jeg er ved at afprøve om jeg vil flytte det hele til danhost. Underligt at det ikke kunne køre sammen med surftown, for danhost kører kun php version 4.3.11 - Så nu er jeg lidt forvirret over at surftown skal have php5 for at tilgå databasen, mens danhost kan nøjes med 4.3.11 - Men hva skidt, jeg prøver at flytte skidtet og så slipper jeg jo også for at mails bliver betragtet som spam. Surftowns smtp er nemlig blacklistet og har været det længe nu.

Og om ikke andet, så lærer jeg en masse af det her :o)
Avatar billede coderdk Praktikant
30. september 2005 - 20:59 #68
Hmm ja det lyder lidt underligt at de bruger 4.3.11...
Avatar billede learner Praktikant
30. september 2005 - 21:07 #69
ja ik ? :o) Jeg venter blot på at de gør så jeg kan bruge gettext()og så prøver jeg om Danhost er okay. Hvis de er, så flytter jeg det hele. Ellers lidt ærgerligt, for jeg er rigtig glad for surftowns kontrolpanel og ubegrænset alias og alt det andet de har. Men så er jeg på den anden side os træt af mails ryger i spamfilteret. Men sådan er det vel altid, for og imod...
Avatar billede learner Praktikant
30. september 2005 - 21:36 #70
Du kan se deres phpinfo() på http://danhost.dk/phpinfo.php
Avatar billede learner Praktikant
16. oktober 2005 - 18:14 #71
Nå hej igen. Nu er jeg installeret det hele på danhost og det kører umiddelbart som det skal efter de installerede gettext()
Det krævede dog at jeg uploadede en php.ini med:

safe_mode = On
register_globals = Off
default_charset = "UTF-8"
safe_mode_allowed_env_vars = PHP_,LANG,LANGUAGE

Og så skulle jeg bruge putenv() istedet for setlocale()
Jeg lavede denne funktion som jeg kører hver gang der skal skiftes sprog:

function init_gettext_to($iso){
    bindtextdomain ("messages", $_SERVER["DOCUMENT_ROOT"]."/translations");
    textdomain ("messages");
    bind_textdomain_codeset("messages", "UTF-8");
    putenv ("LANG=".substr($iso, 0, 2));
    setlocale(LC_ALL,$iso.".UTF-8");
}
//ved sprogskifte bruger jeg feks:
init_gettext_to("da_DK");
echo _("hello");

Og det virker nu. men...

Jeg har kun et lille problem tilbage nu.
min phpmyadmin viser ikke æøå som æøå, men som 'A,' osv.
Så jeg kan ikke redigere i databasen med phpmyadmin.
Jeg har oprettet et spm om dette her:
http://exp.dk/spm/656466

Tak for hjælpen i denne tråd og...
I er meget velkommen at hjælpe videre i det andet spm eller smide forslag her.  :o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester