Avatar billede dytti Novice
02. oktober 2010 - 11:13 Der er 1 kommentar og
1 løsning

Danske tegn i PHP's DOM

Spørgsmålet lyder: Hvordan får jeg tegnene æ,ø,å til at virke med disse 2 sider.

"kort_VIS.php"

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>   
<title>Google Maps AJAX + MySQL/PHP Example</title>   

<script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAA_2TbRJ6G3RHlDzitszsX6xQlWmno7q3XGMgPxmfe5el8fvY1jhTF8HFKShUAAIeUc-FP0FfA8DnSBQ"
            type="text/javascript"></script>   
<script type="text/javascript">
      //<![CDATA[   
      var iconBlue = new GIcon();
    iconBlue.image = 'http://labs.google.com/ridefinder/images/mm_20_blue.png';
    iconBlue.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';
    iconBlue.iconSize = new GSize(12, 20);
    iconBlue.shadowSize = new GSize(22, 20);
    iconBlue.iconAnchor = new GPoint(6, 20);
    iconBlue.infoWindowAnchor = new GPoint(5, 1);

    var iconRed = new GIcon();
    iconRed.image = 'http://labs.google.com/ridefinder/images/mm_20_red.png';
    iconRed.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';
    iconRed.iconSize = new GSize(12, 20);
    iconRed.shadowSize = new GSize(22, 20);
    iconRed.iconAnchor = new GPoint(6, 20);
    iconRed.infoWindowAnchor = new GPoint(5, 1);

    var customIcons = [];
    customIcons["nultur"] = iconBlue;
    customIcons["fangst"] = iconRed;

function load() {      if (GBrowserIsCompatible()) {        var map = new GMap2(document.getElementById("map"));       

    map.addControl(new GScaleControl());
        map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());
map.setCenter(new GLatLng(55.128649, 10.335388), 10); 

       
GDownloadUrl("kort_VIS_HENTDATA.php", function(data) {         
var xml = GXml.parse(data);         
var markers = xml.documentElement.getElementsByTagName("marker");         
for (var i = 0; i < markers.length; i++) {           
var name = markers[i].getAttribute("name");           
var address = markers[i].getAttribute("address");           
var type = markers[i].getAttribute("type");           
var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),                                   


parseFloat(markers[i].getAttribute("lng")));           
var marker = createMarker(point, name, address, type);           
map.addOverlay(marker);          }        });      }    }     
function createMarker(point, name, address, type) {     
var marker = new GMarker(point, customIcons[type]);     
var html = "<b>" + name + "</b> <br/>" + address;     
GEvent.addListener(marker, 'click', function() {       
marker.openInfoWindowHtml(html);      });     
return marker;    }    //]]> 

</script>    </head>    <body onload="load()" onunload="GUnload()">   
<div id="map" style="width: 700px; height: 500px"></div> 
</body> </html>

Som henter data fra

"kort_VIS_HENTDATA.php"

<?php
require("config.php");

function parseToXML($htmlStr)
{
$xmlStr=str_replace('<','&lt;',$htmlStr);
$xmlStr=str_replace('>','&gt;',$xmlStr);
$xmlStr=str_replace('"','&quot;',$xmlStr);
$xmlStr=str_replace("'",'&#39;',$xmlStr);
$xmlStr=str_replace("&",'&amp;',$xmlStr);
return $xmlStr;
}

// 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 markers WHERE 1";
$result = mysql_query($query);
if (!$result) {
  die('Invalid query: ' . mysql_error());
}



// Start XML file, echo parent node
echo '<markers>';

// Iterate through the rows, printing XML nodes for each
while ($row = @mysql_fetch_assoc($result)){
  // ADD TO XML DOCUMENT NODE
  echo '<marker ';
  echo 'name="' . parseToXML($row['name']) . '" ';
  echo 'address="' . parseToXML($row['address']) . '" ';
  echo 'lat="' . $row['lat'] . '" ';
  echo 'lng="' . $row['lng'] . '" ';
  echo 'type="' . $row['type'] . '" ';
  echo '/>';
}

// End XML file
echo '</markers>';

?>

Er der nogen der kan gi et bud på dette?

Jeg er klar over at det er noget med at "påtvinge" UTF-8. Jeg ved bare ikke hvordan.
Har kigget her: http://us2.php.net/manual/en/function.utf8-encode.php Men har stirret mig blind på det ;-)
Avatar billede repox Seniormester
04. oktober 2010 - 14:19 #1
Hvor er det specifikt i din kode at du ikke får tegnene korrekt ud?
Avatar billede dytti Novice
03. december 2010 - 11:48 #2
Jeg har fuldstændig glemt spørgsmålet :-(

Problemet var at output fra mysql, ikke viste æ-ø og å.

Fejlen fandt jeg selv. Den lå her:

"<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>" 

Da jeg lavede den om til nedenstående, virkede det som det skulle.

"<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="da">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />"

Problem løst - spørgsmål lukket (meget for sent ;-)
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