|
wb_script_encoding | Pomocné funkce | wb_escape_string |
SQL server přijímá texty SQL příkazů v kódování zvoleném při založení. Toto kódování se může lišit od kódování, v němž je psán PHP skript, a v případě používání diakritických znaků v SQL příkazech by došlo ke zkomolení zdrojového textu.
I v opačném směru může dojít u znaků s diakritikou vystupujících z databáze ke špatné interpretaci těchto znaků, protože PHP skript je psán v kódování jiném.
Funkce wb_set_script_encoding má tedy za úkol:
Pokud je kódování PHP skriptu různé od WB_ENC_UNKNOWN, pak se provádějí následující konverze:
Z kódování skriptu do systémového kódování databáze, se kterou se pracuje:
Ze systémového kódování databáze do kódování PHP skriptu
Při čtení hodnot typu CHAR(n), resp. CLOB pomocí funkcí wb_result a wb_fetch_into se hodnota zkonvertuje do kódování PHP skriptu. POZOR: Unicode stringy/CLOBy se VŽDY přečtou v kódování UTF-8!!!
Při čtení výstupních hodnot OUT a INOUT parametrů typu CHAR(n) a CLOB SQL příkazů prováděných funkcemi wb_exec a wb_psql_execute se hodnoty zkonvertují do kódování PHP skriptu. UNICODE hodnoty se vždy zkonvertují do kódování UTF-8. Stejným způsobem se konvertují výstupní hodnoty stringových OUT a INOUT parametrů čtené funkcí wb_psql_get_out_param.
Výstupní hodnoty klientských proměnných typu CHAR(n) a CLOB, které se předávají funkcím wb_import_from_XML a wb_export_to_XML a wb_import_from_XML_buffer a wb_export_to_XML_buffer se zkonvertují do kódování PHP skriptu. Výstupní hodnoty UNICODE parametrů se vždy zkonvertují do UTF-8.
Dostupná kódování:
Vrátí TRUE při úspěchu, FALSE při chybě.
Vypsání obsahu SELECTu, který má sloupce v různém kódování, pomocí skriptu v UTF-8.
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>pokus</title></head> <body> <h1>Zde může být text s diakritikou, pokud je soubor uložen v kódování UTF-8)</h1> <? wb_set_script_encoding(WB_ENC_UTF8); $dsn = "sql95test"; $appl = "_testy_vseho"; $dbuser = ""; $conn=wb_connect($dsn, $appl, $dbuser); $cursor=wb_exec($conn, "select * from Adresy"); while (wb_fetch_into($cursor, $buff)) { for ($i=1; $i<=wb_num_fields($cursor);$i++){ echo wb_field_name($cursor, $i).": $buff[$i]<br>"; } echo "<br>"; } ?> </body> </html>
wb_script_encoding | Pomocné funkce | wb_escape_string |