collatieprobleem?
Quote:
En alle tabellen de collatie utf8mb4 te geven, toch?
- Ariën - op 18/10/2024 18:29:19:
Dan is het raadzaam om mijn tip op te volgen, en utf8mb4 te gebruiken in je PHP-script.
En alle tabellen de collatie utf8mb4 te geven, toch?
Dat begrijp ik niet goed. Ik heb de tabellen de collatie zusenzo gegeven, maar wat bedoel je met de zin om die collatie in mijn php-script te gebruiken. Betekent dat ik ergens op regel 1 of 2 moet vermelden dat collatie collatie X is?
En wat denk je van mijn conclusie alle tabellen collatie utf8mb4 te geven?
(Ik ben een amateur, ooit begonnen met een boek voor beginners "Basiscursus PHP5". Daarop autodidactisch verder geborduurd tot ik tevreden was met een bepaald resultaat. En elke keer als ik iets meer wou, snuffelde ik rond op internet zoals dit forum, of bij mensen die iets meer thuis waren in de ict. Nu vertoont het resultaat gebreken en moet ik kennis opdoen om die gebreken te verhelpen. Dit als toelichting van waaruit ik "knutsel" met php.)
Gewijzigd op 18/10/2024 19:02:02 door Guus Wiegerinck
Code (php)
1
2
3
4
5
2
3
4
5
<?php
// etc...
$db->set_charset("utf8mb4");
$db->query("SET NAMES utf8mb4 COLLATE utf8mb4_general_ci");
?>
// etc...
$db->set_charset("utf8mb4");
$db->query("SET NAMES utf8mb4 COLLATE utf8mb4_general_ci");
?>
Gewijzigd op 18/10/2024 19:08:57 door - Ariën -
Dan ga ik daar eens mee werken en kiek'n wâ't wôt.
Maar niet vanavond nog.
Toevoeging op 18/10/2024 19:29:38:
Hihi
Toch geprobeerd.
En ... JA, het werkt!!!
Bedankt
Toevoeging op 18/10/2024 19:34:10:
Ik had jouw code ietsje aangepast aan de connect-code die ik al had. Zó
Code (php)
1
2
3
4
2
3
4
//verbinden met database
$db = mysqli_connect("localhost", "ikusr", "mijnwachtwoord", "mijndatabase");
$db->set_charset("utf8mb4");
$db->query("SET NAMES utf8mb4 COLLATE utf8mb4_general_ci");
$db = mysqli_connect("localhost", "ikusr", "mijnwachtwoord", "mijndatabase");
$db->set_charset("utf8mb4");
$db->query("SET NAMES utf8mb4 COLLATE utf8mb4_general_ci");
Gewijzigd op 18/10/2024 19:19:39 door Guus Wiegerinck
Fijn dat het werkt. Soms is het iets heel simpels.... ;-)
Alle scripts zijn aangepast, maar er zijn twee scripts waar het tóch niet goed gaat. Ik vind dat vreemd.
Daar krijg ik tóch bijv. Belgi? of Groot Britanni?, en in het andere script M?rklin of ??n.
Het is in twee scripts, in andere gaat het wél goed.
Toch een andere collatie nodig?
Het ligt niet aan het feit dat ik de code in een inc-bestand heb gezet en oproep met include, dat maakt niet uit,
Ik vrees dat die al anders opgeslagen zijn.
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
$land = $rij_my['land'];
if ($land == "F"){$Land = "Frankrijk";}
if ($land == "D"){$Land = "Duitsland";}
if ($land == "I"){$Land = "Ital";}
if ($land == "NL"){$Land = "Nederland";}
if ($land == "GB"){$Land = "Groot Britanni";}
if ($land == "B"){$Land = "Belgi";}
if ($land == "F"){$Land = "Frankrijk";}
if ($land == "D"){$Land = "Duitsland";}
if ($land == "I"){$Land = "Ital";}
if ($land == "NL"){$Land = "Nederland";}
if ($land == "GB"){$Land = "Groot Britanni";}
if ($land == "B"){$Land = "Belgi";}
En uit het andere script:
Code (php)
1
2
3
4
5
2
3
4
5
<p>
Hieronder staat een opsomming van locomotieven zoals die is opgenomen in de zgn "Loklist" van Mrklin MS2<br>
Het maximaal aantal locomotieven dat opgenomen kan worden in die lijst is 40.<br>
Voor elke nieuwe lok boven de 40 die aan de lijst wordt toegevoegd, wordt er n andere zonder waarschuwing verwijderd.
</p>
Hieronder staat een opsomming van locomotieven zoals die is opgenomen in de zgn "Loklist" van Mrklin MS2<br>
Het maximaal aantal locomotieven dat opgenomen kan worden in die lijst is 40.<br>
Voor elke nieuwe lok boven de 40 die aan de lijst wordt toegevoegd, wordt er n andere zonder waarschuwing verwijderd.
</p>
Dus hier wél de html-code toepassen.
Zo zie je maar, je probleem aan iemand anders voorleggen helpt om zelf tot een oplossing te komen
Toevoeging op 19/10/2024 17:20:55:
Guus Wiegerinck op 19/10/2024 17:14:05:
Ik denk dat ik het al weet. Deze woorden komen niet uit de database, maar heb ik zo als ze zijn in het script gezet. Bijv.:
En uit het andere script:
Dus hier wél de html-code toepassen.
En inderdaad, nu staat het er zoals het hoort,
Zo zie je maar, je probleem aan iemand anders voorleggen helpt om zelf tot een oplossing te komen
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
$land = $rij_my['land'];
if ($land == "F"){$Land = "Frankrijk";}
if ($land == "D"){$Land = "Duitsland";}
if ($land == "I"){$Land = "Ital";}
if ($land == "NL"){$Land = "Nederland";}
if ($land == "GB"){$Land = "Groot Britanni";}
if ($land == "B"){$Land = "Belgi";}
if ($land == "F"){$Land = "Frankrijk";}
if ($land == "D"){$Land = "Duitsland";}
if ($land == "I"){$Land = "Ital";}
if ($land == "NL"){$Land = "Nederland";}
if ($land == "GB"){$Land = "Groot Britanni";}
if ($land == "B"){$Land = "Belgi";}
En uit het andere script:
Code (php)
1
2
3
4
5
2
3
4
5
<p>
Hieronder staat een opsomming van locomotieven zoals die is opgenomen in de zgn "Loklist" van Mrklin MS2<br>
Het maximaal aantal locomotieven dat opgenomen kan worden in die lijst is 40.<br>
Voor elke nieuwe lok boven de 40 die aan de lijst wordt toegevoegd, wordt er n andere zonder waarschuwing verwijderd.
</p>
Hieronder staat een opsomming van locomotieven zoals die is opgenomen in de zgn "Loklist" van Mrklin MS2<br>
Het maximaal aantal locomotieven dat opgenomen kan worden in die lijst is 40.<br>
Voor elke nieuwe lok boven de 40 die aan de lijst wordt toegevoegd, wordt er n andere zonder waarschuwing verwijderd.
</p>
Dus hier wél de html-code toepassen.
En inderdaad, nu staat het er zoals het hoort,
Zo zie je maar, je probleem aan iemand anders voorleggen helpt om zelf tot een oplossing te komen
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
$land = $rij_my['land'];
if ($land == "F") {$Land = "Frankrijk";}
if ($land == "D") {$Land = "Duitsland";}
if ($land == "I") {$Land = "Italië";}
if ($land == "NL"){$Land = "Nederland";}
if ($land == "GB"){$Land = "Groot Britannië";}
if ($land == "B") {$Land = "België";}
if ($land == "F") {$Land = "Frankrijk";}
if ($land == "D") {$Land = "Duitsland";}
if ($land == "I") {$Land = "Italië";}
if ($land == "NL"){$Land = "Nederland";}
if ($land == "GB"){$Land = "Groot Britannië";}
if ($land == "B") {$Land = "België";}
https://www.w3schools.com/charsets/ref_utf_diacritical.asp
Gewijzigd op 19/10/2024 20:47:47 door Adoptive Solution
dat is dus hier kennelijk de verkeerde set.
check eens of jouw editor je een tekenset last kiezen
Ivo P op 24/10/2024 18:23:15:
dat is dus hier kennelijk de verkeerde set.
Ik weet niet precies waar je op doelt, maar letters met accenten en zo die uit de database komen, worden correct weergegeven.
Als je bedoelt de momenten dat bijv. België werd weergegeven als Belgi?, dan ging het om door mij getypte tekens. ë noteren als &eunml; loste die probleempje op.
Quote:
check eens of jouw editor je een tekenset last kiezen.
Ik schrijf/schreef mijn scripts met kladblok of php editor of notepad++
Of bedoel je dat niet.
Ik schrijf/schreef mijn scripts met kladblok of php editor of notepad++
Of bedoel je dat niet.
Toevoeging op 25/10/2024 14:50:12:
- Ariën - op 24/10/2024 01:05:26:
Als je 100 procent zeker bent dat je latin1 gebruikt, en wilt overstappen op UTF-8 (utf8mb4), dan is dit script een handige omzettool. Maak van te voren wel een backup van de huidige staat.
https://gist.github.com/pobegov/f8b293fb6eb658a13feb1c318e6c07ed
https://gist.github.com/pobegov/f8b293fb6eb658a13feb1c318e6c07ed
Ik heb even gekeken. Oeps, dat is me veel te ingewikkeld en ingrijpend en ik wil het leuk houden voor mijzelf. phyMyAdmin meldt bij de algemene instellingen dat de collatie van de serververbinding is: utf8mb4_unicode_ci; en dat de karakterset van de databaseserver is: cp1252 West European (latin1). Wat het verschil is tussen de serververbinding en de databaserver, weet ik niet. Belangrijk vind ik of het werkt, en dat doet het nu.