602SQL-Úplná dokumentace Index  

wb_set_script_encoding

PHP

boolean wb_set_script_encoding( int encoding_id [, resource connection] )


Parametry

encoding_id
Kódování, které se má nastavit. Musí to být jedna z konstant WB_ENC_xxx. Povinný parametr.
connection
Otevřené spojení na 602SQL server (tuto hodnotu vrací funkce wb_connect, nebo wb_pconnect). Nepovinný parametr. Pokud je parametr zadán, provede se také funkce wb_set_client_encoding s parametry connection a encoding_id.


Popis

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:

  1. konvertovat řetězce ze skriptu předávané SQL serveru ze skriptového kódování do systémového kódování databáze
  2. řetězce přečtené z databáze a poskytované PHP skriptu překódovat ze systémového kódování do kódování skriptu


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í:



Návratová hodnota

Vrátí TRUE při úspěchu, FALSE při chybě.



Příklad

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>

Viz