Google weer feed script utf8 probleem

Pagina: 1
Acties:

Onderwerpen


  • slimjim
  • Registratie: Oktober 2009
  • Laatst online: 09:02
Beste mensen

Ik ben momenteel bezig met een simpele pagina die het weer op een bepaalde locatie kan ophalen d.m.v. een google feed.
nu werkt dat goed zolang ik het binnen nederland gebruik maar nu doet de siuatie zich voor dat dit voor een camping is in frankrijk. Hiervan is het probleem dat ze een frankrijk vele tekens gebruiken die niet utf-8 zijn.

dus ik heb al even eraan gezeten en het werkt inmiddels wel maar ik blijf vreemde tekens behouden.
weet iemand hier een oplossing voor?

script

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<?

function writeln($string)
{
    echo "{$string}\r\n";
}

function convert($temp)
{
    // Converting Fahrenheit To Celsius, vice versa
    global $config;
    $temperature = $temp;

    if( strtoupper($config['base-temp-unit']) == 'F' && strtoupper($config['display-temp-unit']) == 'C' )
    {
        // Converting Fahrenheit To Celsius
        $temperature = round((5/9)*($temp-32));
    }
    if( strtoupper($config['base-temp-unit']) == 'C' && strtoupper($config['display-temp-unit']) == 'F' )
    {
        // Converting Celsius to Fahrenheit
        $temperature = round((9/5)*$temp+32);
    }
   
    return $temperature;
}

$url = "http://www.google.com";
$location = "crecy%20la%20chapelle,france";
$language= "fr";
$weather_url = "{$url}/ig/api?weather={$location}&hl={$language}[b]&ie=utf-8&oe=utf-8[/b]";

$config['base-temp-unit'] = 'F'; // F=Fahrenheit, C=Celsius
$config['display-temp-unit'] = 'C'; // F=Fahrenheit, C=Celsius

if( $xmlData = file_get_contents($weather_url) )
{
    [b]$xml = new SimpleXMLElement($xmlData);[/b]
   
    $eol = "\r\n";
   
    // Display basic information
    writeln("<div id='basic_info'>");
    writeln("  <b>Basic Information</b><br/>");
    writeln("  City : {$xml->weather->forecast_information->city->attributes()}<br/>");
    writeln("  Date : {$xml->weather->forecast_information->forecast_date->attributes()}<br/>");
    writeln("  Time : {$xml->weather->forecast_information->current_date_time->attributes()}<br/>");
    writeln("</div>");
   
    writeln("<br/>");
    // Display current information
    writeln("<div id='current'>");
    writeln("  <b>Current Information</b><br/>");
    writeln("  Temperature : {$xml->weather->current_conditions->temp_c->attributes()} F / {$xml->weather->current_conditions->temp_c->attributes()} C<br/>");
    writeln("  {$xml->weather->current_conditions->humidity->attributes()}<br/>");
    writeln("  {$xml->weather->current_conditions->wind_condition->attributes()}<br/>");
    writeln("  <img src='{$url}{$xml->weather->current_conditions->icon->attributes()}'><br/>");
    writeln("  {$xml->weather->current_conditions->condition->attributes()}<br/>");
    writeln("</div>");
   
    writeln("<br/>");
   
    writeln("<div id='forecast'>");
    writeln("  <b>Forecasts - Next ".count($xml->weather->forecast_conditions)." days</b>");
    writeln("</div>");

    foreach( $xml->weather->forecast_conditions as $i => $result )
    {
        // Display forecasts (next 4 days)
        writeln("<div id='forecast_{$i}'>");
        writeln("  Day : {$result->day_of_week->attributes()}<br/>");
        writeln("  Low : ".convert($result->low->attributes())." ".strtoupper($config['display-temp-unit'])."<br/>");
        writeln("  Hi : ".convert($result->high->attributes())." ".strtoupper($config['display-temp-unit'])."<br/>");
        writeln("  <img src='{$url}{$result->icon->attributes()}'><br/>");
        writeln("  {$result->condition->attributes()}<br/>");
        writeln("</div>");
       
        writeln("<br/>");
    }
}
?>

[ Voor 0% gewijzigd door crisp op 10-09-2011 22:34 . Reden: code-tags ]


  • Voutloos
  • Registratie: Januari 2002
  • Niet online
The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)
Hiervan is het probleem dat ze een frankrijk vele tekens gebruiken die niet utf-8 zijn.
Onzin, utf-8 voldoet ook voor de Franse taal. Het echte probleem is dat jij zelf niet weet welke charset je op elk punt gebruikt, of de browser niet vertelt wat het is.

Als dit het hele script is, mist de header call waarin je de charset aan geeft.

offtopic:
En ik weet niet wat je plan is met je writeln functie, maar dat soort whitespace heeft geen nut en bovendien maak je nu alle code onleesbaar. :X

[ Voor 24% gewijzigd door Voutloos op 10-09-2011 21:24 ]

{signature}


Acties:
  • 0 Henk 'm!

  • slimjim
  • Registratie: Oktober 2009
  • Laatst online: 09:02
ok dit is wel een beetje dom.
zo lang naar gekeken dat ik door de bomen het bos niet meer zag.

bedankt voor hulp.
hiermee is het dus al opgelost.