PDA

Zobacz pełną wersję : Polskie i tureckie znaki w jednym artykule



tkasob
09-07-2011, 23:39
Witam,
Jestem użytkownikiem Joomla od kilku godzin i oprócz wielu standardowych problemów, które udaje mi się rozwiązywać m.in. dzięki przeszukiwaniu zawartości tego forum, napotkałem na taki, z którego rozwiązaniem nie mogę sobie poradzić.
Mianowicie, teksty umieszczane w artykułach są w j. polskim, jednakże ze względu na ich specyfikę pojawiają się tureckie litery występujące w nazwach własnych.
Próbowałem przechodzić do widoku HTML i tam litery zamieniałem na ich odpowiedniki w kodzie szesnastkowym, np. ğ - ğ
Kiedy wracałem z widoku HTML pojawiał się właściwy znak, ale już kiedy wciskałem PODGLĄD, znak zamieniał się z powrotem w znak zapytania.
Czy ktoś wie jak poradzić sobie z tym problemem?
Z góry dziękuję i pozdrawiam,
Tomek

neo_fox
10-07-2011, 00:47
Jesli masz poprawne kodowanie bazy danych i strony w UTF-8 nie powinno być żadnych problemów z wyświetlaniem jakichkolwiek liter.
W takim przypadku nigdy nie używaj html/xml-entities. HTML-entities dla specyficznych znaków językowych to workaround dla stron które nie są poprawnie kodowane.

Przykładowo na tej stronie mogę napisać:

العربية
Български
Česky
Ελληνικά
فارسی
한국어
עברית
日本語
Română
Русский
Slovenčina
Slovenščina
Српски / Srpski
ไทย
Tiếng Việt
Українська
中文

A nawet:
♥ ✈ ☺ ♬ ☑ ♠ ☎ ☻ ♫ ☒ ♤ ☤ ☹ ♪ ♀ ✩ ✉ ☠ ✔ ♂ ★ ✇ ♺ ✖ ♨ ❦ ☁ ✌ ♛ ❁ ☪ ☂ ✏ ♝ ❀ ☭ ☃ ☛ ♞ ✿ ☮ ☼ ☚ ♘ ✾ ☯ ☾ ☝ ♖ ✽ ✝ ☄ ☟ ♟ ✺ ☥ ✂ ✍ ♕ ✵ ☉ ☇ ☈ ☡ ✠ ☊ ☋ ☌ ☍ ♁ ✇ ☢ ☣ ✣ ✡ ☞ ☜ ✜ ✛ ❥ ♈ ♉ ♊ ♋ ♌ ♍ ♎ ♏ ♐ ♑ ♒ ♓ ☬ ☫ ☨ ☧ ☦ ✁ ✃ ✄ ✎ ✐ ❂ ❉ ❆ ♅ ♇ ♆ ♙ ♟ ♔ ♕ ♖ ♗ ♘ ♚ ♛ ♜ ♝ ♞ © ® ™ … ∞ ¥ € £ ƒ $ ≤ ≥ ∑ « » ç ∫ µ ◊ ı ∆ Ω ≈ * § • ¶ ¬ † & ¡ ¿ ø å ∂ œ Æ æ π ß ÷ ‰ √ ≠ % ˚ ˆ ˜ ˘ ¯ ∑ º — ‽ ?

trzepiz
10-07-2011, 01:01
@Radek - ty miałeś iść spać :):) jakieś 2 godziny temu ....

neo_fox
10-07-2011, 13:33
@Radek - ty miałeś iść spać :):) jakieś 2 godziny temu ....

LOL :D Jakoś mi nie wyszło ;)

tkasob
10-07-2011, 17:54
Dziękuję za poradę, ale nadal jest problem.
Sprawdziłem kodowanie bazy danych w phpmyadmin:
"Kodowanie napisów dla MySQL: UTF-8 Unicode (utf8)"
Zatem poprawnie.
W templatce którą używam dopisałem w pliku index.php parametr charset z wartością utf-8, początek pliku wygląda teraz tak:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" >
<head>
<meta http-equiv="X-UA-Compatible" content="IE=7"; charset=utf-8 />
<jdoc:include type="head" />
<link rel="stylesheet" href="<?php echo $this->baseurl; ?>/templates/system/css/system.css" type="text/css" />
<link rel="stylesheet" href="<?php echo $this->baseurl; ?>/templates/system/css/general.css" type="text/css" />
<link rel="stylesheet" type="text/css" href="<?php echo $this->baseurl; ?>/templates/<?php echo $this->template; ?>/style.css" />
<!--[if IE 6]><link rel="stylesheet" href="<?php echo $this->baseurl; ?>/templates/<?php echo $this->template; ?>/style.ie6.css" type="text/css" media="screen" /><![endif]-->
<script type="text/javascript" src="<?php echo $this->baseurl; ?>/templates/<?php echo $this->template; ?>/script.js"></script>
</head>


Próbując wpisać wszystkie znaki tureckie wychodzi mi:
?üşi?öç
co oznacza, że z 2 znakami jest problem.

Czy jest jeszcze coś co powianiem zrobić, lub coś zrobiłem niepoprawnie?
Tomek

Jola
10-07-2011, 21:05
Witam,
obowiązujące zasady aby uniknąć problemów z kodowaniem:


kodowanie bazy - utf-8
kodowanie tabel - utf-8
kodowanie kolumn typu tekstowego tabel - utf-8
metoda porównywanie napisów dla bazy - utf-8
metoda porównywania napisów dla kolumn tabel - utf-8

Jdwind
11-07-2011, 00:39
Zostaw na głównej nazwę admina i hasło, tureckie zaraz Ci się pokażą same ;-) A tak już poważniej, zrób zrzut bazy do pliku i zobacz jaki masz charset przy tabelach.

tkasob
13-07-2011, 21:30
Rzeczywiście po zmianie w bazie danych wszystkiego co było możliwe na kodowanie utf-8, zadziałało.

Dziękuję za pomoc,
Tomek