Grzegorz Sobala

Grzegorz Sobala programista Magic,
Webdeveloper

Temat: Zamiana cyrylicy w UTF-8 na encje dla iso-8859-2

Trafiła mi się praca w jakimś autorskim CMSie.
Jest on wielojęzykowy i ma wersję rosyjsko-języczną, jednak wszystko jest kodowane w iso-8859-2, a wszystkie rosyjskie znaki są zakodowane jako encje.

Mam zrobić tam automat który z pliku xls poprzez plik csv pozwoli zaimportować grupowo dane.

Krok xls -> csv (zakodowany UTF-8) udało mi się zrobić poprzez makro w excelu, ze względu na brak możliwości zakodowania cyrylicy jako csv w opcjach excela.

Mam teraz plik zakodowany UTF-8 w którym chciałbym te znaki zamienić na encje.

Tekst: Главная страница

wiem że mam zamienić na łańcuch: Главная страница

Próbowałem tak:
$encje=htmlentities($tekst , ENT_COMPAT);

Jednak efekty są wysoce niezadawalające.
Mógłby ktoś pomóc ?

konto usunięte

Temat: Zamiana cyrylicy w UTF-8 na encje dla iso-8859-2

UTF-8 jest kodowany na wielu bajtach, dlatego standardowe funkcje operujące na stringach nie spisują się najlepiej. Ich zamienników w takim przypadku należy szukać pośród "Multibyte String Functions":

<?php

$string = 'Главная страниц';

echo mb_convert_encoding($string, 'HTML-ENTITIES', 'UTF-8');
Sebastian Kremiec edytował(a) ten post dnia 06.10.11 o godzinie 09:30

konto usunięte

Temat: Zamiana cyrylicy w UTF-8 na encje dla iso-8859-2

htmlentities też ma opcję ustalenia kodowania znaków :)
htmlentities($string, ENT_COMPAT | ENT_HTML401, "UTF-8");

Środkowe flagi to wartość domyślna.

konto usunięte

Temat: Zamiana cyrylicy w UTF-8 na encje dla iso-8859-2

Michał Miszczyszyn:
htmlentities też ma opcję ustalenia kodowania znaków :)

Zgadza się.
Jednak pomimo tego wciąż, jak powiedział Grzegorz, "efekty są wysoce niezadawalające".Sebastian Kremiec edytował(a) ten post dnia 06.10.11 o godzinie 11:18

konto usunięte

Temat: Zamiana cyrylicy w UTF-8 na encje dla iso-8859-2

Rzeczywiście. Głupie PHP :D
Grzegorz Sobala

Grzegorz Sobala programista Magic,
Webdeveloper

Temat: Zamiana cyrylicy w UTF-8 na encje dla iso-8859-2

Dziękuję za pomoc.
mb_convert_encoding spisało się tak jak potrzebowałem :-)

Następna dyskusja:

NetBeans + kodowanie ISO-88...




Wyślij zaproszenie do