Memoria e trasferimento dei dati
E' possibile che un singolo negozio visualizzi pagine in più lingue, anche quando le lingue utilizzano serie di caratteri diverse. A tal fine, i dati vengono memorizzati nel database di WebSphere Commerce in un formato universale che può essere applicato su un numero esteso di lingue. Poichè non tutti i browser Web supportano le stesse serie di caratteri, quando i dati vengono richiesti da una pagina JSP essi vengono convertiti in una serie di caratteri adeguata.
Viene di seguito descritto come i dati vengano trasferiti dal database al browser:
- I dati di testo vengono memorizzati nel database di WebSphere Commerce utilizzando la codifica Unicode UTF-8.
- I driver JDBC caricano i dati dal database, convertendoli da UTF-8 a codifica Unicode a 16 bit Java nativo.
- Le pagine JSP emettono i dati utilizzando la codifica Java a 16 bit.
- WebSphere Application Server converte l'output JSP da Unicode a 16 bit alla codifica di destinazione.
E' possibile specificare la codifica o nella pagina JSP o in un file property. Ad esempio,
per specificare la codifica Shift-JIS per una pagina in giapponese, è possibile procedere come segue:
- pagina JSP
<%@ page contentType="text/html; charset=Shift-JIS"%>.
- File property
ENCODESTATEMENT = text/html; charset=Shift-JIS
La codifica del carattere della pagina JSP generata viene impostata utilizzando la seguente istruzione contenuta nella maschera JSP:
<%response.setContentType(infashiontext.getString("ENCODESTATEMENT")); %>
Poiché non tutti i browser possono interpretare ogni schema di codifica, è opportuno specificare soltanto gli schemi di codifica più conosciuti, come UTF-8 e Shift-JIS.
- I dati convertiti vengono inviati di nuovo al browser.
- Il browser interpreta la replica HTTP in base alla codifica specificata nell'intestazione.
Viene di seguito descritto come i dati vengano trasferiti dal browser al database:
- I dati vengono immessi nel browser.
E' possibile immettere dati multilingue utilizzando un metodo di input.
- WebSphere Commerce converte i dati provenienti dal browser in codifica Java a 16 bit utilizzando il metodo setCharacterEncoding().
Ogni LANGUAGE_ID nella tabella LANGUAGE è associato ad un valore di codifica che utilizzza la colonna ENCODING. Questo valore viene utilizzato per interpretare i dati provenienti dal browser.
- I dati vengono inviati al database dove vengono convertiti da codifica Java 16 bit a UTF-8
che è la stessa in cui vengono memorizzati i dati nel database.