Gå til innhold

[Løst]ÆØÅ og charset


Anbefalte innlegg

Koden som er gjengitt under prøver å skrive ut ved hjelp av charset ISO-8859-1, men den skal skrive ut ved hjelp av UTF8. Noen som kan fortelle meg hvordan jeg gjør det?

<?php
header("Content-type: application/octet-stream"); 
header("Content-Disposition: attachment; filename=lmk_medlemmer.xls"); 
header("Pragma: no-cache"); 
header("Expires: 0"); 
include("../wp-config.php");

$sql = mysql_query('SELECT * '
	. ' FROM phpbb_profile_fields_data'
	. ' JOIN phpbb_users ON phpbb_users.user_id = phpbb_profile_fields_data.user_id'
	. ' WHERE pf_medlemsstatus="2"'
	. ' ORDER by pf_etternavn'
	. ' LIMIT 0 , 100');
if (is_user_logged_in()) {

echo "<table border = '1', bordercolor = '000000'>
<tr>
<th>Etternavn   </th>
<th>Fornavn</th>
</tr>";




while($row = mysql_fetch_array($sql))
 {  
 echo "<tr>";
 echo "<td>" . $row['pf_etternavn'] . "</td>";
 echo "<td>" . $row['pf_fornavn'] . "</td>";
 echo "</tr>";
 }
echo "</table>";
mysql_close($con);
print "$header\n$data"; 
}
?>

Lenke til kommentar
Videoannonse
Annonse
  • 3 uker senere...

Ser ut som om du har rett, men jeg vet har ikke nok kunnskaper til å få det til. Fant dette på nett:

 

"For transcoding values in an Excel generated CSV the following seems to work:

 

<?php

$value = iconv('Windows-1252', 'UTF-8//TRANSLIT', $value);

?> "

 

Queryen min ser slik ut:

$sql = mysql_query('SELECT * '

. ' FROM phpbb_profile_fields_data'

. ' JOIN phpbb_users ON phpbb_users.user_id = phpbb_profile_fields_data.user_id'

. ' WHERE pf_medlemsstatus="2"'

. ' ORDER by pf_etternavn'

. ' LIMIT 0 , 100');

 

Setter stoooor pris på hjelp!

 

Edit:

Fant ut at denne linjen faktisk gir æøå ut, men vet ikke hvordan jeg kan konvertere i mitt tilfelle.

 

"

echo iconv("ISO-8859-1", "latin1", "Thislatin1 is a tæ ø å æ Æ Å LØ est.");

"

Endret av christian1986
Lenke til kommentar

Da må du kjøre iconv på alle variablene du henter ut fra spørringen.

 

Uvisst hvordan du lagrer variablene dine, sannsynligvis i ett array.

 

$resultatArray = array();
while ($row = mysql_fetch_array($sql)) {
$resulatatArray[] = array(
"col1" => iconv("ISO-8859-1", "latin1", $row["col1"]),
osv.
);
}

 

$resultatArray['col1']; burde nå gi riktig output.

Endret av xibriz
Lenke til kommentar

Hei igjen!

Mulig det er tidlig på morningen, men jeg får det enda ikke til :blush: ..

 

Slik ser min ut uten at jeg har gjort noe:

 

echo "<td>" . $row['pf_etternavn'] . "</td>";

echo "<td>" . $row['pf_fornavn'] . "</td>";

echo "<td>" . $row['user_from'] . "</td>";

echo "<td>" . $row['pf_postnummer'] . "</td>";

 

Selve spørringen:

 

$sql = mysql_query('SELECT * '

. ' FROM phpbb_profile_fields_data'

. ' JOIN phpbb_users ON phpbb_users.user_id = phpbb_profile_fields_data.user_id'

. ' WHERE pf_medlemsstatus="2"'

. ' ORDER by pf_etternavn'

. ' LIMIT 0 , 100');

Lenke til kommentar

Altså folkens, latin1 er det uformelle navnet på ISO-8859-1. Å konvertere fra ISO-8859-1 til latin1 vil derfor gjøre absolutt ingenting bortsett fra å kaste bort tiden. Hva Excel benytter aner jeg ikke, men sjansen er stor for at det er en eller flere av disse:

  • CP850
  • CP1255 / Windows-1255
  • ISO-8859-1 / latin1
  • UTF-8

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...