Bonjour a tous.
Voilà c'est problème je pense classique mais je bute.
Je suis en train de developper un flux pour ggogle shopping dont la sortie sera en UTF8

Ma table est en latin1_swedish_ci, et malgré divers test de conversion il y trouve toujours des :
Problème de codage concernant l'attribut suivant
Il semble que vos offres contiennent des caractères incorrects. Veuillez vous assurer que tous les caractères du flux sont conformes au codage indiqué.
Je tiens a préciser que je définit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
header('Content-Type: application/rss+xml; charset=UTF-8');
echo '<?xml version="1.0" encoding="UTF-8" ?>';
?>
<rss version="2.0" xmlns:g="http://base.google.com/ns/1.0">
et que je convertit tout
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
function replace_problem_characters($text) {
$formattags = array("&");
$replacevals = array("&");
$text = str_replace($formattags, $replacevals, $text);
//$in[] = '@&(amp|#038);@i'; $out[] = '&';
$in[] = '@&(#036);@i'; $out[] = '$';
$in[] = '@&(quot);@i'; $out[] = '"';
$in[] = '@&(#039);@i'; $out[] = '\'';
$in[] = '@&(nbsp|#160);@i'; $out[] = ' ';
$in[] = '@&(eacute|#233);@i'; $out[] = 'é';
$in[] = '@&(egrave|#232);@i'; $out[] = 'è';
$in[] = '@&(iuml|#207);@i'; $out[] = 'ï';
$in[] = '@&(hellip|#8230);@i'; $out[] = '...';
$in[] = '@&(copy|#169);@i'; $out[] = '©';
$in[] = '@&(trade|#129);@i'; $out[] = '&#153;';
$in[] = '@&(lt|#60);@i'; $out[] = '<';
$in[] = '@&(gt|#62);@i'; $out[] = '>';
$in[] = '@&(laquo);@i'; $out[] = '«';
$in[] = '@&(raquo);@i'; $out[] = '»';
$in[] = '@&(deg);@i'; $out[] = '°';
$in[] = '@&(mdash);@i'; $out[] = '&#151;';
$in[] = '@&(reg);@i'; $out[] = '®';
$in[] = '@&(&#150;);@i'; $out[] = '-';
$in[] = '@&(#339);@i'; $out[] = '?';
$in[] = '@&(ccedil|#199);@i'; $out[] = 'ç';
$text = preg_replace($in, $out, $text);
return $text;
}
 
function strip_html_tags($str) {
$search = array ("'<script[^>]*?>.*?</script>'si", // Strip out javascript
"'<[/!]*?[^<>]*?>'si", // Strip out HTML tags
//"'([rn])[s]+'", // Strip out white space
"'&(quot|#34);'i", // Replace HTML entities
"'&(amp|#38);'i",
"'&(lt|#60);'i",
"'&(gt|#62);'i",
"'&(nbsp|#160);'i",
"'&(iexcl|#161);'i",
"'&(cent|#162);'i",
"'&(pound|#163);'i",
"'&(copy|#169);'i",
"'&#(d+);'e"); // evaluate as php
 
$replace = array ("",
"",
//"\1",
"\"",
"&",
"<",
">",
" ",
chr(161),
chr(162),
chr(163),
chr(169),
"chr(\1)");
 
return preg_replace($search, $replace, $str);
}
 
$desc = strip_html_tags($desc);
$desc = utf8_encode(replace_problem_characters($desc));
: