Jump to content
GIGN Forum

Problema Ar Charset


JAKuT
 Share

Recommended Posts

Meginaju visadi, nesanak...

Pasa majas lapa, stav UTF-8 rada, gan lat valodu gan rus.

Vot taka screena, rada man. gribu uztaisit lai rada, visu taka uzrakstis ar garumzimem un krievu valodu.

skripts:

<?php
$platums = "100"; // platums (px)
$forums = "f"; // foruma url
$limits = "10"; // cik posti uzraadiisies
$link = mysql_connect($host, $dbuser, $dbpass)
or die("Nesanaaca piekonekteeties: " . mysql_error());
mysql_select_db($dbname) or die("Datubaze neekstiste");
mysql_query("SET NAMES UTF-8"); // NEAIZTIEC


$kverisdivi = mysql_query("SELECT start_date, posts, last_poster_name, last_poster_id, title, tid, forum_id, last_post FROM ibf_topics ORDER BY last_post DESC LIMIT ".$limits."");
echo "<div>";

while($row = mysql_fetch_array( $kverisdivi )) {
  $datums = $row['start_date'];
  $piev_datums = date("H:i",$datums);
$row[title] = substr($row[title], 0, 10)."...";
echo "<p><b>$piev_datums - </b> <a style='text-decoration: none' href=\"$forums/index.php?showtopic=".$row[tid]."&view=getnewpost\" title=\"\">".$row[title]."</a><br></p>";
}
echo "</div>";

?>

post-12316-1247415604.jpg

Link to comment
Share on other sites

  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
$platums = "100"; // platums (px)
$forums = "f"; // foruma url
$limits = "10"; // cik posti uzraadiisies
$link = mysql_connect($host, $dbuser, $dbpass)
or die("Nesanaaca piekonekteeties: " . mysql_error());
mysql_select_db($dbname) or die("Datubaze neekstiste");
mysql_query("SET NAMES UTF-8"); // NEAIZTIEC


$kverisdivi = mysql_query("SELECT start_date, posts, last_poster_name, last_poster_id, title, tid, forum_id, last_post FROM ibf_topics ORDER BY last_post DESC LIMIT ".$limits."");
echo "<div>";

while($row = mysql_fetch_array( $kverisdivi )) {
  $datums = $row['start_date'];
  $piev_datums = date("H:i",$datums);
$row[title] = substr($row[title], 0, 10)."...";
echo "<p><b>$piev_datums - </b> <a style='text-decoration: none' href=\"$forums/index.php?showtopic=".$row[tid]."&view=getnewpost\" title=\"\">".$row[title]."</a><br></p>";
}
echo "</div>";

?>

Link to comment
Share on other sites

  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
$platums = "100"; // platums (px)
$forums = "f"; // foruma url
$limits = "10"; // cik posti uzraadiisies
$link = mysql_connect($host, $dbuser, $dbpass)
or die("Nesanaaca piekonekteeties: " . mysql_error());
mysql_select_db($dbname) or die("Datubaze neekstiste");
mysql_query("SET NAMES UTF-8"); // NEAIZTIEC
$kverisdivi = mysql_query("SELECT start_date, posts, last_poster_name, last_poster_id, title, tid, forum_id, last_post FROM ibf_topics ORDER BY last_post DESC LIMIT ".$limits."");
echo "<div>";

while($row = mysql_fetch_array( $kverisdivi )) {
  $datums = $row['start_date'];
  $piev_datums = date("H:i",$datums);
$row[title] = substr($row[title], 0, 10)."...";
echo "<p><b>$piev_datums - </b> <a style='text-decoration: none' href=\"$forums/index.php?showtopic=".$row[tid]."&view=getnewpost\" title=\"\">".$row[title]."</a><br></p>";
}
echo "</div>";

?>

Tas taks, pats par sevim ir, majas lapas sakuma... koda

<meta http-equiv="Content-Type" content="text/html; charset=utf8">

bet, vajag tieshi kodam izlabot, es tak saku majas lapa viss labi, bet tieshi skripta saja, kaut kas nerada.

Link to comment
Share on other sites

nokačā notepad2 vai jebkādu citu programmētāju programmu un uzliec encoding utf-8 savbādāk viņš nemaz i nerādīs.. ja nemāki veidot scriptus, tad neķeries labāk klāt! (Lai gan, neko nedarot neko neiemācīsies) GL.

Link to comment
Share on other sites

Visticamāk problēma rodas šajā rindā:

$row[title] = substr($row[title], 0, 10)."...";

Apgriežot desmit simbolus no izvadāmā teksta, visticamāk sanāk nogriezt kādu daļu no simbolu virknes, kas apzīmē kādu ne-latīnisko burtu (krievu burti, latviešu burti ar garumzīmēm/mīkstinājuma zīmēm). Piemēram pievienojot mysql db lauku ar tekstu tajā, piemēram, "mājās", patiesībā, datubāzē, tas glabājas kā "m%C4%81j%C4%81s", kur attiecīgī simbolu virkne "%C4%81" arī aizstāj "ā" burtu, bet izpildot substr uz mainīgo $row[title], kur itkā ir vārds "mājās", patiesībā tas izpildās uz to garo variantu. Piemēram, nogriežot trīs burtus no tā paša vārda "mājās", loģiski būtu, ka rezultāts būtu "māj", bet patiesībā rezultāts ir "m%C", kuru tālāk jau php nevar attēlot, jo nepazīst tādu UTF8 burtu "%C", tāpēc arī aizstāj ar tukšiem kvadrātiem vai ķeburiem vai arī aizstāj ar iegūtā koda reālo atbilstošo simbolu, bet tas jau nav tas, kas ir vajadzīgs.

Principā vienkāršākais risinājums būtu nogriezt tekstu līdz pirmajai (otrajai, trešajai, ceturtajai utt) atstarpei vai punktuācijas zīmei. Bet tad, pieņemu, būs gadījumi, kad teksts nerādīsies tikai vienā rindiņā, kā iespējams vēlies.

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
 Share

×
×
  • Create New...