Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z kodowaniem znaków, iso-8859-2 -> latin2 -> utf8
ARThe
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 1.11.2003
Skąd: Knurów

Ostrzeżenie: (0%)
-----


Mam problem z polskimi znakami.

Aplikacja wprowadzająca dane do bazy wprowadza je z kodowaniem iso-8859-2
Baza danych mysql do której wprowadza te dane ma kodowanie latin2

A moja aplikacja (php 5) czytająca dane z tej bazy posiada kodowanie UTF-8
Niestety zamiast polskich znaków pojawiają się krzaki.

Niestety nie mogę ingerować w kodowanie aplikacji wprowadzającej dane oraz w kodowanie bazy danych.
Jedynie co moge zmienić to kodowanie aplikacji czytającej dane z bazy.

Czy jest jakaś możliwość zmiany kodowania lub zastosowanie funkcji konwertujących aby polskie znaki były dobrze czytane questionmark.gif

proszę o szybką pomoc bo sprawa jest pilna

z góry dziękuję!


--------------------
ARThe
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Tomplus
post
Post #2





Grupa: Zarejestrowani
Postów: 1 879
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

Ostrzeżenie: (0%)
-----


Spróbuj tegj funkcji:

  1. <?php
  2. function convert ($string, $type)
  3. {
  4. $win2utf = array(
  5.  "xb9" => "xc4x85", "xa5" => "xc4x84", "xe6" => "xc4x87", 
  6.  "xc6" => "xc4x86", "xea" => "xc4x99", "xca" => "xc4x98",
  7.  "xb3" => "xc5x82", "xa3" => "xc5x81", "xf3" => "xc3xb3",
  8.  "xD3" => "xc3x93", "x9c" => "xc5x9b", "x8c" => "xc5x9a",
  9.  "xbf" => "xc5xbc", "x8f" => "xc5xbb", "x9f" => "xc5xba",
  10.  "xaf" => "xc5xb9", "xf1" => "xc5x84", "xD1" => "xc5x83",
  11. );
  12. $iso2utf = array(
  13.  "xb1" => "xc4x85", "xa1" => "xc4x84", "xe6" => "xc4x87", 
  14.  "xc6" => "xc4x86", "xea" => "xc4x99", "xca" => "xc4x98",
  15.  "xb3" => "xc5x82", "xa3" => "xc5x81", "xf3" => "xc3xb3", 
  16.  "xD3" => "xc3x93", "xb6" => "xc5x9b", "xa6" => "xc5x9a",
  17.  "xbc" => "xc5xba", "xac" => "xc5xb9", "xbf" => "xc5xbc", 
  18.  "xaf" => "xc5xbb", "xf1" => "xc5x84", "xD1" => "xc5x83"
  19. );
  20. if ($type == 'ISO-8859-2->UTF-8' || $type == 'iso2utf') {
  21.  return strtr($string, $iso2utf);
  22.  }
  23. else if ($type == 'UTF-8->ISO-8859-2' || $type == 'utf2iso') {
  24.  return strtr($string, array_flip($iso2utf));
  25.  }
  26. else if ($type == 'WINDOWS-1250->UTF-8' || $type == 'win2utf') {
  27.  return strtr($string, $win2utf);
  28.  }
  29. else if ($type == 'UTF-8->WINDOWS-1250' || $type == 'utf2win') {
  30.  return strtr($string, array_flip($win2utf));
  31.  }
  32. else if ($type == 'ISO-8859-2->WINDOWS-1250' || $type == 'iso2win') {
  33.  return strtr($string, "xa1xa6xacxb1xb6xbc", "xa5x8cx8fxb9x9cx9f");
  34.  }
  35. else if ($type == 'WINDOWS-1250->ISO-8859-2' || $type == 'win2iso') {
  36.  return strtr($string, "xa5x8cx8fxb9x9cx9f", "xa1xa6xacxb1xb6xbc");
  37.  }
  38. }
  39. ?>


Ten post edytował Tomplus 29.07.2008, 21:55:08
Go to the top of the page
+Quote Post
JoShiMa
post
Post #3





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

Ostrzeżenie: (0%)
-----


Cytat(ARThe @ 29.07.2008, 22:28:24 ) *
A moja aplikacja (php 5) czytająca dane z tej bazy posiada kodowanie UTF-8
Niestety zamiast polskich znaków pojawiają się krzaki.

A musi mieć UTF-8?

Nie wystarczy po połączeniu z bazą dać:
  1. <?php
  2. mysql_query("set names 'utf-8'");
  3. ?>


--------------------
Go to the top of the page
+Quote Post
ARThe
post
Post #4





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 1.11.2003
Skąd: Knurów

Ostrzeżenie: (0%)
-----


Nie musi mieć UTF-8 wystarczy tylko że będzie dobrze wczytywać polskie znaki


--------------------
ARThe
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 06:24