Topic: Pubblico - Composto da 6 Posts di 2 Utenti.
| 14 Dicembre, 2011 15:17 | #1 | ||
|---|---|---|---|
|
Salve essendo il mio primo post ne approfitto per porre un saluto a tutta la community. Diversi database hanno in comune le query sql (ogni database ha le sue varianti di query) ciò che li rende simili tra loro è il linguaggio ANSI, usato per tutte le query. Volevo chiedervi se mi mostrate la via corretta se avete tempo da disporre per la mia causa. Il default di mysql è Latin1 (ISO-8859-1). Che può essere cambiato con il comando CHARCTER SET 'utf8' oppure con SET NAMES 'utf8' (pratica che sconsiglia pure mysql), il secondo comando rispetto al primo imposta in più pure la connessione è il web server a UTF-8. A voi con il secondo comando dopo averlo eseguito vi effettua le nuove query immesse dall'applicazione web?
Ultima modifica 14 Dicembre, 2011 15:23 di darbula |
|||
| 14 Dicembre, 2011 19:58 | #2 | ||
|---|---|---|---|
|
Ciao Darbula e benvenuto. Saluti :) Salvatore DC La mente è come un paracadute: funziona solo se si apre. A.Einstein. |
|||
| 14 Dicembre, 2011 22:12 | #3 | ||
|---|---|---|---|
|
Grazie accetto calorosamente il suo benvenuto :) Siccome l'informatica in generale mi affascina cerco di capire cosa c'è attorno, girovagando in internet ho trovato qualche post che descrive che con il comando SET NAMES 'utf8' alcuni utenti non riescono più ad eseguire query dall'applicativo web. Se questo problema fosse legato al browser in uso nel pc?
Ultima modifica 14 Dicembre, 2011 22:47 di darbula |
|||
| 15 Dicembre, 2011 09:57 | #4 | ||
|---|---|---|---|
|
...ma diamoci del tu :) Guarda, ho avuto il problema dei caratteri accentati in molti contesti, java(servlet/jsp) e applicazioni php. La comunicazione tra webapp e database avviene ovviamente tra webserver e dbms, per cui potremmo escludere che la codifica del client possa influire in qualche modo. Sicuramente, se la codifica dell'output non viene eseguita correttamente oppure se negli header della pagina non viene specificato bene di che tipo di output stiamo parlando, è probabile che il browser la interpreti a modo suo rischiando di interpretare male. Come ho risolto il problema? Quando si tratta mandare dati al db, bisogna codificarli affinché questi dati siano coerenti al charset del db che li ospita. Quando invece vengono presi per essere mandati in output su una pagina web o qualsiasi altro output, ovviamente ci sarà sempre un punto in cui si deve dire "si tratta di UTF-8 oppure, latin-1, ecc..." e decodificare i dati, coerentemente all'header che abbiamo mandato. Se hai un caso specifico in corso possiamo analizzarlo insieme e trovare una soluzione. Salvatore DC La mente è come un paracadute: funziona solo se si apre. A.Einstein. |
|||
| 15 Dicembre, 2011 16:33 | #5 | ||
|---|---|---|---|
|
Grazie molto gentile :) Scusate prima ho omesso di dire che solo con l'apostrofo (il database,i javascript,php è le pagine xhtml sono impostate tutte in UTF-8) lo vedo non corretto con il browser ISO-8859-1 del cellulare mentre con browser UTF-8 tutto bene. Non sono stato abbastanza chiaro prima, per questo o ripetuto tutto il discorso.. Ps. Gli accenti li vedo bene con tutte e due le codifiche. Però sarebbe corretto dire così: bisogna adeguare il charset UTF-8 al default del database da linea di comando mysql (oppure tramite php del tipo $db_charcter_set = 'UTF8';) con CHARACTER_SET 'utf8' è poi le pagine web con header per php, meta tag per html è xhtml in UTF-8 (Non il contrario!!!). Si noti che se già avete la codifica UTF-8 con dei post ad esempio sul vostro forum di non cambiarla mai oppure fate così: (sconsigliato) sostituite gli Heaeder è meta tag in ISO-8859-1 degli script è pagine web è poi con un bel copia incolla create un nuovo file sulla codifica desiderata ad es. ISO-8859-1,dalla cannessione al database specificate ISO-8859-1 (ovviamente prima dovete fare l'importazione del database è tenere un backup non modificato per qualsiasi evenienza) nell l'importazione nel file .sql specificate come prima intestazione se non presente CHARACTER_SET 'latin1' ricordo con NOTEPAD++ di salvare il file con codifica ISO-8859-1. (consigliato) Quando importate il database nel file .sql specifcate come prima intestazione se non presente CHARACTER_SET 'utf8' (nel caso il vostro forum fosse già funzionante UTF-8) ricordo con NOTEPAD++ di salvare il file con codifica UTF-8 senza boom. Nota il linguaggio di programmazione java per la loro interpretazione interna usa UTF-16, su file utf-8 non standard. Spero sia gradito il mio pensiero, però mi piacerebbe sapere come la pensate.
Ultima modifica 16 Dicembre, 2011 06:58 di darbula |
|||
| 16 Dicembre, 2011 06:21 | #6 | ||
|---|---|---|---|
|
scusate il doppio post. anche se sono fuori topic volevo chiedere se si può specificare una query esterna per il charset? |
|||
Condividi su:
Loggati o Registrati per replicare