Avatar billede OnkelJoakim Novice
16. oktober 2007 - 13:49 Der er 7 kommentarer og
1 løsning

Problemer med danske tegn i xml

Hej Eksperter!


Jeg sidder og er ved at lave en oversigt med billardklubber i danmark. Jeg har dog problemer med ÆØÅ i mit XML :-(

Jeg har brugt noget kode fra Google. Jeg kan bare ikke få ÆØÅ til at virke.

I min database (mysql) har jeg sat Collation til utf8_danish_ci og phpkoden ser således ud:

<?php
header('Content-Type: text/html; charset=ISO-8');

require("phpsqlajax_dbinfo.php");
error_reporting(0);


// Start XML file, create parent node
$doc = domxml_new_doc("1.0");
$node = $doc->create_element("markers");
$parnode = $doc->append_child($node);
$localhost = "xxxx";

// Opens a connection to a MySQL server
$connection=mysql_connect ($localhost, $username, $password);
if (!$connection) {
  die('Not connected : ' . mysql_error());
}

// Set the active MySQL database
$db_selected = mysql_select_db($database, $connection);
if (!$db_selected) {
  die ('Can\'t use db : ' . mysql_error());
}

// Select all the rows in the markers table
$query = "SELECT * FROM gKlub, gTables WHERE gKlub.klubid = gTables.klubid";
$result = mysql_query($query);
if (!$result) {
  die('Invalid query: ' . mysql_error());
}



// Iterate through the rows, adding XML nodes for each
while ($row = @mysql_fetch_assoc($result)){
  // ADD TO XML DOCUMENT NODE


  $node = $doc->create_element("klub");
  $newnode = $parnode->append_child($node);
  $newnode->set_attribute("klubnr", $row['klubid']);
  $newnode->set_attribute("name", $row['navn']);
  $newnode->set_attribute("address", $row['adresse']);
  $newnode->set_attribute("carambole", $row['carambole']);
  $newnode->set_attribute("Kegler", $row['kegler']);
  $newnode->set_attribute("Pool", $row['pool']);
  $newnode->set_attribute("Snooker", $row['snooker']);
  $newnode->set_attribute("Kleinmatch", $row['klein']);
  $newnode->set_attribute("Andet", $row['andet']);
  $newnode->set_attribute("lat", $row['lat']);
  $newnode->set_attribute("lng", $row['lng']);
}


$xmlfile = $doc->dump_mem(true, "UTF-8");
echo $xmlfile;

?>


Hvad er galt?

Det kan ses på:
http://www.abc72.dk/test/phpsqlajax_map.htm og
http://www.abc72.dk/test/phpsqlajax_genxml.php
Avatar billede sherlock Nybegynder
16. oktober 2007 - 13:57 #1
Du behandler ikke æøå konsistent.

"Brøndby BK" address="Brøndby Møllevej 37"

G-maps læser åbenbart fint de danske tegn, så du skal umiddelbart checke din editerings-funktion.
Avatar billede OnkelJoakim Novice
16. oktober 2007 - 14:27 #2
Jeg bruger Notepad som texteditor. Jeg har været inde og rette kodningen til UTF-8

Nu får jeg følgende fejl:

Ugyldig på øverste niveau af dokumentet. Der opstod en fejl under behandling af ressourcen 'http://www.abc72.dk/test/phpsql...

&#65279;<?xml version="1.0" encoding="ISO-8859-1"?>

Jeg har også rettet min første header til UTF-8 i stedet for ISO-8 :-)


Hva gør jeg galt nu?

\\Rasmus
Avatar billede sherlock Nybegynder
16. oktober 2007 - 14:53 #3
Du skal fjerne "&#65279;".
Avatar billede OnkelJoakim Novice
16. oktober 2007 - 15:16 #4
Jeg giver op!

Det er simpelthen noget ...

Jeg har forsøgt alt. Enten er det tegnsættet i DB'en ellers er det i headeren i XML filen ellers er det kodningen af php filen. Jeg har rettet det hele, men alligevel fungere det ikke.

\\Rasmus
Avatar billede pidgeot Nybegynder
16. oktober 2007 - 20:10 #5
Notepad duer ikke til UTF-8, da den gemmer et BOM i starten af filen (hvilket faktisk er forkert og som du kan se direkte skadende).

Find en anden editor der ikke gør det, eks. Notepad++, og gem din fil igen uden BOM.
Avatar billede janegil Nybegynder
17. oktober 2007 - 14:22 #6
...eller Notepad med UTF-16 og encoding="UTF-16" ? (Bare et skudd i mørket)
Avatar billede OnkelJoakim Novice
17. oktober 2007 - 17:38 #7
Tak for de gode bud. Jeg kigger på det i morgen. Jeg skal jobbe nu :-(

\\Rasmus
Avatar billede OnkelJoakim Novice
18. august 2010 - 14:42 #8
Lukker.
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

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