Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 4.10.2020 Ostrzeżenie: (0%)
|
Przede wszystkim pragnę wszystkich zgromadzonych powitać wszem i wobec.
bardzo proszę o pomoc bo straciłem już nadzieję na rozwiązanie. Mam serwer apache, z php 7.3. Mam prosty skrypt, który po ODBC pobiera dane a część posiada tekst cyrylicą. Niestety uruchamiając skrypt w przeglądarce na kompie w sieci, wszystkie dane cyrylicą po ODBC wyświetlają się jako znaki zapytania. Wyświetlając echo "napis cyrylicą" wszystko ładnie się wyświetla. Podejrzewam apacha bo z kolei uruchamiając w bashu poprzez php skrypt.php wyświetla się wszystko prawidłowo i z odbc i z echo. Gdzie się da ustawiłem UTF-8, w apachu, php dla cli i dla apacha, w nagówku pliku php. Próbowałem też bez ustawionego domyślnego kodowania w apachu i ustawione było tylko kodowanie w header pliku php. Wytłumaczcie mi proszę gdzie szukać przyczyny skoro teoretycznie to nie wina ODBC bo w bashu interpreter php wyświetla poprawnie ale też nie wina apacha bo tekst cyrylicą wywołany w pliku php też wyświetla się poprawnie. Będę wdzięczny za wszelką pomoc. |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 4.10.2020 Ostrzeżenie: (0%)
|
Ale dlaczego w takim razie z poziomu basha wszystko działa prawidłowo ? Wnioskuję, że coś nie halo na drodze php->apache.
Oczywiście to co podałeś próbowałem i dupa: Kod header('Content-type: text/html; charset=utf-8'); echo "from echo : AAAКоллекция, вдохновленная картинами Климта<br><pre>"; $dbh= new PDO('odbc:hanipol', '', ''); $dbh->exec('SET NAMES utf8'); $dbh->exec('SET CHARACTER SET utf8'); $query = "call tlumacz@techjawt()"; $stmt = $dbh->prepare("$query"); $stmt->execute(); while ($row = $stmt->fetch()) { if ($row['JEZYK'] == 'RU'){ echo "from odbc: ".$row['TLUM'].'<br>'; break; } } unset($dbh); unset($stmt); Macie jakąś sprawdzoną metodę w PHP aby sprawdzić kodowanie ciągu? Co ciekawe niemieckie, polskie znaki wyświetlają się prawidłow, tylko ta nieszczęsna cyrylica. Właściwie wyświetlenie mi nie potrzebne a tylko wygenerowanie prawidłowego XML ale z poziomu przeglądarki. Ewentualnie poprzez przeglądarkę mogę wywołać linię poleceń i wtedy generować. Ale to strasznie druciarstwo. Ten post edytował techjaw 4.10.2020, 23:03:53 |
|
|
|
techjaw apache, brak cyrylicy w przeglądarce 4.10.2020, 10:05:25
Tomplus Skomplikowany problem to jest.
Czy w apache.conf ... 4.10.2020, 20:49:44
SmokAnalog Sprawdź w dev toolsach w zakładce Network jaki jes... 4.10.2020, 21:19:15
techjaw Cytat(Tomplus @ 4.10.2020, 21:49:44 )... 4.10.2020, 22:40:40
SmokAnalog Na 100% Apache nie ma nic do tego. Masz prawidłowo... 4.10.2020, 22:47:27
SmokAnalog Dziwne. Jesteś na 100% pewien, że odpalasz dokładn... 4.10.2020, 23:03:44
techjaw Tak tak, jestem pewien. Efekt w bashu, locale oczy... 4.10.2020, 23:05:57
SmokAnalog Niestety nie wiem jak pomóc. Nie mam pojęcia dlacz... 4.10.2020, 23:14:10
techjaw Tak czy siak dzięki za zainteresowanie, ja właśnie... 4.10.2020, 23:22:42
SmokAnalog Na serio kiedyś miałem identyczne znaki zapytania ... 4.10.2020, 23:26:53
trueblue A może tak? Choć tu nie ma rozróżnienia na to gdzi... 5.10.2020, 06:47:36 
techjaw Cytat(trueblue @ 5.10.2020, 07:47:36 ... 5.10.2020, 14:37:48
trueblue A w konsoli i w przeglądarce uruchamiane są te sam... 5.10.2020, 14:51:18
techjaw Liczyłem że nie ale, tu i tu
phpinfo()
PHP Versio... 5.10.2020, 17:50:39
Pyton_000 A przepuść stringi z echo i z bazy przez mb_strlen... 5.10.2020, 18:21:01
techjaw To oczywiście już sprawdziłem, praktycznie zrównał... 5.10.2020, 18:51:11
trueblue Czy w opcjach tego źródła danych nie ma możliwości... 6.10.2020, 17:22:34
techjaw Oczywiście zaraz zerknę ale to jakiś wynalazek. Na... 6.10.2020, 18:24:37 ![]() ![]() |
|
Aktualny czas: 28.12.2025 - 02:05 |