Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Znaki „ i dlugi - oraz • są jako ? (ZNAK ZAPYTANIA)
Forum PHP.pl > Forum > Bazy danych > MySQL
charzak
Witam, mam problem z którym nie mogę sobie poradzićsad.gif
Mam sformatowany text w wordzie, przeklejam go do notatnika by zgubić format tekstu, następnie kopiuje z notatnika i wklejam do textarea z wysiwig: nicEdit lub jQueryTE. Po wklejeniu tekst przyjmuje postać czystego / gołego tekstu z kropkami jako punk listy. Wszystko wygląda. Następnie następuje zapis do bazy danych, zmienna z textarea jest bindowana przez bindValue jako string, po wyświetleniu owego tekstu na stronie zamiast punków (kropki/listy) – to akutrat nie problem bo w edytorze mogę zmienić na punk listy ale pojawia się znak zapytania oraz zamiast myślnika (w edytorze wkleja się dłuższy myślnik) i dolnego otwarcia cudzysłowu również pojawia się znak zapytania. Proszę o pomoc
Sephirus
Używasz znaków unicode - to nie jest zwykły " o kropce nie wspominając. Musisz zapewnić odpowiednie kodowanie znaków. Upewnij się z jakiego kodowania wrzucasz te znaki - jeśli to z Worda to pewnie cp-1250. Sprawdź jakie masz kodowanie w bazie w plikach z kodem i ustaw tak by wszędzie było takie samo - najlepiej utf-8. Jeśli tekst wrzucany do DB dalej będzie potem zawietał krzaczki - użyj funkcji iconv to konwersji kodowania.
charzak
wszystkie pliki są utf8 baza tez, polskie znaki są ok, tylko te co wypisałem nie działają, kodowanie z ASCII na UTF-8 za pomocą iconv wykrzaczają się również polskie znaki

działa tylko to: str_replace('•', '•', $string);
trueblue
A charset strony (nie pliku ze stroną) jest ustawiony?
Zrób zrzut ekranu z wycinka.
charzak
hej,

charset strony z formularzem jest ustawiony na utf8

strona zaczyna się od wystartowania sessji

i następnie

<!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='pl' lang='pl'>
<!-- saved from url=(0013)about:internet -->

oraz

include 'class/head.php';
$head = new Head();
$head->start();

metoda start w klasie head (zawsze działa i nigdy nie ma problemu z polskimi znakami tak jak w tym przypadku jest ok tylko te kropki i myślniki):

  1. public function start() {
  2.  
  3. $code = "<head>\n";
  4. $code .= "<meta http-equiv='content-type' content='text/html;charset=utf-8' />\n";
  5. $code .= "<meta http-equiv='content-language' content='pl'>\n";
  6. $code .= "<meta name='author' content='' />\n";
  7. $code .= "<meta name='robots' content='noindex, nofollow' />\n";
  8. $code .= "<meta name='googlebot' content='noindex, nofollow' />\n";
  9. $code .= "<meta name='msnbot' content='noindex, nofollow' />\n";
  10. // $code .= "<link href='/css/style_main.css' media='all' rel='stylesheet' type='text/css' />\n";
  11. echo $code;
  12. }


i formularz.

dane są przekazywane do strony index która wywołuje controller a ten model który robi zapis do bazy. plik index i controller i model nie mają charset strony. Kod powyżej jest wyświetlany tylko na stronach drukowanych na monitorze przez klasę widoku.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.