Probleme d'encodage
Résolu
aruju
Messages postés
2214
Date d'inscription
Statut
Contributeur
Dernière intervention
-
aruju Messages postés 2214 Date d'inscription Statut Contributeur Dernière intervention -
aruju Messages postés 2214 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je viens solliciter votre aider car j'ai un souci et il m'est impossible de le résoudre tout seul :-/
J'essaye de mettre en place un système wiki (dokuwiki précisément) et je rencontre un problème d'encodage que vous pouvez voir ici: (page de test) https://linux-pas-a-pas.org
Dokuwiki utilise codage utf-8 tandis que mon site (et surtout mon forum) utilise ISO. Sur la page d'accueil (colonne gauche) j'importe quelques données de mon forum via un fichier appelé externe.php qui ne s'affiche pas correctement..
Si je change d'encodage (de dokuwiki) en ISO alors c'est la colonne qui s'affiche comme il faut mais pas le reste de site...
Comment pourrais je résoudre ce problème?
Merci
Je viens solliciter votre aider car j'ai un souci et il m'est impossible de le résoudre tout seul :-/
J'essaye de mettre en place un système wiki (dokuwiki précisément) et je rencontre un problème d'encodage que vous pouvez voir ici: (page de test) https://linux-pas-a-pas.org
Dokuwiki utilise codage utf-8 tandis que mon site (et surtout mon forum) utilise ISO. Sur la page d'accueil (colonne gauche) j'importe quelques données de mon forum via un fichier appelé externe.php qui ne s'affiche pas correctement..
Si je change d'encodage (de dokuwiki) en ISO alors c'est la colonne qui s'affiche comme il faut mais pas le reste de site...
Comment pourrais je résoudre ce problème?
Merci
A voir également:
- Probleme d'encodage
- Encodage ascii - Guide
- Encodage binaire - Guide
- Parametre d'encodage non pris en charge - Guide
- Le flux d’octets était en erreur par rapport à l’encodage de caractères déclaré. la déclaration d’encodage des caractères était peut être incorrecte. ✓ - Forum Programmation
- Soucis d'encodage ✓ - Forum PHP
6 réponses
bonjour ,
quand tu importe les données forum pour les afficher sur le site utilise la function Ut8_encode .
exemple :
print utf8_encode('Mes données');
ya aussi la function utf8_decode ( pour le cas inverse )
quand tu importe les données forum pour les afficher sur le site utilise la function Ut8_encode .
exemple :
print utf8_encode('Mes données');
ya aussi la function utf8_decode ( pour le cas inverse )
salut,
j'utilise
j'utilise
includePeux-tu m'indiquer la syntaxe exact? En sachant que la commande est:
<?php include('http://www.linux-pas-a-pas.org/forum-linux/extern.php?action=new&show=5&fid=2'); ?>
dans ton fichier :
forum-linux/extern.php
cherche la ligne qui contiens une ligne du genre :
if(isset($_get['action']) && $_get['action'] = 'new' ) {
bla bla bla
la doit y'avoir une requête qui permet de sélectionner les titre voulue pui les affciher
print ou echo c'est la que tu doit rajouter utf8-encode.
bla bla bla
}
forum-linux/extern.php
cherche la ligne qui contiens une ligne du genre :
if(isset($_get['action']) && $_get['action'] = 'new' ) {
bla bla bla
la doit y'avoir une requête qui permet de sélectionner les titre voulue pui les affciher
print ou echo c'est la que tu doit rajouter utf8-encode.
bla bla bla
}
après plusieurs essayes je colle ici le fichier externe.php
j'ai mis en gras la partie que j'ai remplacé avec utf8-encode
<?php *******************************************************/ // Le nombre maximum de discussions qui seront affichées $show_max_topics = 60; // La longueur à laquelle les sujets des discussions seront tronquées (pour HTML) $max_subject_length = 35; /***********************************************************************/ // NE MODIFIEZ RIEN AU-DESSOUS DE CETTE LIGNE ! (à moins que vous sachiez ce que vous faites) define('PUN_ROOT', './'); @include PUN_ROOT.'config.php'; // If PUN isn't defined, config.php is missing or corrupt if (!defined('PUN')) exit('Le fichier "config.php" n\'existe pas ou est endommagé. Veuillez lancer install.php pour installer PunBB.'); // Make sure PHP reports all errors except E_NOTICE error_reporting(E_ALL ^ E_NOTICE); // Turn off magic_quotes_runtime set_magic_quotes_runtime(0); // Load the functions script require PUN_ROOT.'include/functions.php'; // Load DB abstraction layer and try to connect require PUN_ROOT.'include/dblayer/common_db.php'; // Load cached config @include PUN_ROOT.'cache/cache_config.php'; if (!defined('PUN_CONFIG_LOADED')) { require PUN_ROOT.'include/cache.php'; generate_config_cache(); require PUN_ROOT.'cache/cache_config.php'; } // Make sure we (guests) have permission to read the forums $result = $db->query('SELECT g_read_board FROM '.$db->prefix.'groups WHERE g_id=3') or error('Unable to fetch group info', __FILE__, __LINE__, $db->error()); if ($db->result($result) == '0') exit('Vous n\'avez pas les permissions'); // Attempt to load the common language file @include PUN_ROOT.'lang/'.$pun_config['o_default_lang'].'/common.php'; if (!isset($lang_common)) exit('Il n\'y a pas de pack de langue \''.$pun_config['o_default_lang'].'\' d\'installé. Veuillez ré-installer une langue de ce nom.'); // Check if we are to display a maintenance message if ($pun_config['o_maintenance'] && !defined('PUN_TURN_OFF_MAINT')) maintenance_message(); if (!isset($_GET['action'])) exit('Aucun paramètre de fourni. Veuillez voir extern.php pour les instructions.'); // // Converts the CDATA end sequence ]]> into ]]> // function escape_cdata($str) { return str_replace(']]>', ']]>', $str); } // // Show recent discussions // if ($_GET['action'] == 'active' || $_GET['action'] == 'new') { $order_by = ($_GET['action'] == 'active') ? 't.last_post' : 't.posted'; $forum_sql = ''; // Was any specific forum ID's supplied? if (isset($_GET['fid']) && $_GET['fid'] != '') { $fids = explode(',', trim($_GET['fid'])); $fids = array_map('intval', $fids); if (!empty($fids)) $forum_sql = ' AND f.id IN('.implode(',', $fids).')'; } // Any forum ID's to exclude? if (isset($_GET['nfid']) && $_GET['nfid'] != '') { $nfids = explode(',', trim($_GET['nfid'])); $nfids = array_map('intval', $nfids); if (!empty($nfids)) $forum_sql = ' AND f.id NOT IN('.implode(',', $nfids).')'; } // Should we output this as RSS? if (isset($_GET['type']) && strtoupper($_GET['type']) == 'RSS') { $rss_description = ($_GET['action'] == 'active') ? $lang_common['RSS Desc Active'] : $lang_common['RSS Desc New']; $url_action = ($_GET['action'] == 'active') ? '&action=new' : ''; // Send XML/no cache headers header('Content-Type: text/xml'); header('Expires: '.gmdate('D, d M Y H:i:s').' GMT'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); // It's time for some syndication! echo '<?xml version="1.0" encoding="'.$lang_common['lang_encoding'].'"?>'."\r\n"; echo '<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "http://my.netscape.com/publish/formats/rss-0.91.dtd">'."\r\n"; echo '<rss version="0.91">'."\r\n"; echo '<channel>'."\r\n"; echo "\t".'<title>'.pun_htmlspecialchars($pun_config['o_board_title']).'</title>'."\r\n"; echo "\t".'<link>'.$pun_config['o_base_url'].'/</link>'."\r\n"; echo "\t".'<description>'.pun_htmlspecialchars($rss_description.' '.$pun_config['o_board_title']).'</description>'."\r\n"; echo "\t".'<language>en-us</language>'."\r\n"; // Fetch 15 topics $result = $db->query('SELECT t.id, t.poster, t.subject, t.posted, t.last_post, f.id AS fid, f.forum_name FROM '.$db->prefix.'topics AS t INNER JOIN '.$db->prefix.'forums AS f ON f.id=t.forum_id LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.moved_to IS NULL'.$forum_sql.' ORDER BY '.$order_by.' DESC LIMIT 15') or error('Unable to fetch topic list', __FILE__, __LINE__, $db->error()); while ($cur_topic = $db->fetch_assoc($result)) { if ($pun_config['o_censoring'] == '1') $cur_topic['subject'] = censor_words($cur_topic['subject']); echo "\t".'<item>'."\r\n"; echo "\t\t".'<title>'.pun_htmlspecialchars($cur_topic['subject']).'</title>'."\r\n"; echo "\t\t".'<link>'.$pun_config['o_base_url'].'/viewtopic.php?id='.$cur_topic['id'].$url_action.'</link>'."\r\n"; echo "\t\t".'<description><![CDATA['.escape_cdata($lang_common['Forum'].': <a href="'.$pun_config['o_base_url'].'/viewforum.php?id='.$cur_topic['fid'].'">'.$cur_topic['forum_name'].'</a><br />'."\r\n".$lang_common['Author'].': '.$cur_topic['poster'].'<br />'."\r\n".$lang_common['Posted'].': '.date('r', $cur_topic['posted']).'<br />'."\r\n".$lang_common['Last post'].': '.date('r', $cur_topic['last_post'])).']]></description>'."\r\n"; echo "\t".'</item>'."\r\n"; } echo '</channel>'."\r\n"; echo '</rss>'; } // Output regular HTML else { $show = isset($_GET['show']) ? intval($_GET['show']) : 15; if ($show < 1 || $show > 50) $show = 15; // Fetch $show topics $result = $db->query('SELECT t.id, t.subject FROM '.$db->prefix.'topics AS t INNER JOIN '.$db->prefix.'forums AS f ON f.id=t.forum_id LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.moved_to IS NULL'.$forum_sql.' ORDER BY '.$order_by.' DESC LIMIT '.$show) or error('Unable to fetch topic list', __FILE__, __LINE__, $db->error()); while ($cur_topic = $db->fetch_assoc($result)) { if ($pun_config['o_censoring'] == '1') $cur_topic['subject'] = censor_words($cur_topic['subject']); if (pun_strlen($cur_topic['subject']) > $max_subject_length) $subject_truncated = pun_htmlspecialchars(trim(substr($cur_topic['subject'], 0, ($max_subject_length-5)))).' ...'; else $subject_truncated = pun_htmlspecialchars($cur_topic['subject']); echo '<li><a href="'.$pun_config['o_base_url'].'/viewtopic.php?id='.$cur_topic['id'].'&action=new" title="'.pun_htmlspecialchars($cur_topic['subject']).'">'.$subject_truncated.'</a></li>'."\n"; } } return; } // // Show users online // else if ($_GET['action'] == 'online' || $_GET['action'] == 'online_full') { // Load the index.php language file require PUN_ROOT.'lang/'.$pun_config['o_default_lang'].'/index.php'; // Fetch users online info and generate strings for output $num_guests = $num_users = 0; $users = array(); $result = $db->query('SELECT user_id, ident FROM '.$db->prefix.'online WHERE idle=0 ORDER BY ident', true) or error('Unable to fetch online list', __FILE__, __LINE__, $db->error()); while ($pun_user_online = $db->fetch_assoc($result)) { if ($pun_user_online['user_id'] > 1) { $users[] = '<a href="'.$pun_config['o_base_url'].'/profile.php?id='.$pun_user_online['user_id'].'">'.pun_htmlspecialchars($pun_user_online['ident']).'</a>'; ++$num_users; } else ++$num_guests; } echo $lang_index['Guests online'].': '.$num_guests.'<br />'; if ($_GET['action'] == 'online_full') echo $lang_index['Users online'].': '.implode(', ', $users).'<br />'; else echo $lang_index['Users online'].': '.$num_users.'<br />'; return; } // // Show board statistics // else if ($_GET['action'] == 'stats') { // Load the index.php language file require PUN_ROOT.'lang/'.$pun_config['o_default_lang'].'/index.php'; // Collect some statistics from the database $result = $db->query('SELECT COUNT(id)-1 FROM '.$db->prefix.'users') or error('Unable to fetch total user count', __FILE__, __LINE__, $db->error()); $stats['total_users'] = $db->result($result); $result = $db->query('SELECT id, username FROM '.$db->prefix.'users ORDER BY registered DESC LIMIT 1') or error('Unable to fetch newest registered user', __FILE__, __LINE__, $db->error()); $stats['last_user'] = $db->fetch_assoc($result); $result = $db->query('SELECT SUM(num_topics), SUM(num_posts) FROM '.$db->prefix.'forums') or error('Unable to fetch topic/post count', __FILE__, __LINE__, $db->error()); list($stats['total_topics'], $stats['total_posts']) = $db->fetch_row($result); echo $lang_index['No of users'].': '.$stats['total_users'].'<br />'; echo $lang_index['Newest user'].': <a href="'.$pun_config['o_base_url'].'/profile.php?id='.$stats['last_user']['id'].'">'.pun_htmlspecialchars($stats['last_user']['username']).'</a><br />'; echo $lang_index['No of topics'].': '.$stats['total_topics'].'<br />'; echo $lang_index['No of posts'].': '.$stats['total_posts']; return; } else exit('Bad request');
j'ai mis en gras la partie que j'ai remplacé avec utf8-encode
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question