Non riesco a capirlo per la vita di me.MySQL European Characters
Ho una query che richiama traduzioni di elementi in una pagina. Quindi qualsiasi numero di 15 lingue può apparire su quella pagina. Quando inizio ad aggiungere lingue come lo svedese qualsiasi cosa che ha un simbolo come ö
, i risultati nell'intero campo restituiscono una stringa nulla.
Ho verificato la codifica sul tavolo e afferma che sta usando UTF-8
ma visto che questo non funziona sono confuso.
Ecco la domanda con cui sto lavorando:
SELECT
form.form_id,
elem.elem_type,
elem.elem_name,
elem.elem_format,
elem.elem_required,
trans.trans_label,`
trans.trans_description,
trans.trans_defaultValue,
trans.trans_other,
elem.elem_advancedcommand
FROM
events_form form
LEFT JOIN
events_form_elements elem
ON
form.event_id = elem.event_id
INNER JOIN
events_form_translations trans
ON
elem.elem_id = trans.elem_id
INNER JOIN
events_form_languages lang
ON
trans.lang_id = lang.lang_id
WHERE
form.form_id = '{$formid}' AND lang.language = '{$language}'
ORDER BY
elem.elem_sortorder
Ora ho cercato di fare qualcosa di simile:
CONVERT(CAST(trans.trans_description as BINARY) USING latin1) as trans_description,
Per forzarlo per convertire la codifica, ma che non lo fa dare un risultato a tutti.
Dopo aver ottenuto il risultato, è immediatamente json_encoded e restituito all'utente (richiesta Ajax). NON credo che il json_encode come un print_r
della matrice di output restituisca gli stessi problemi.
Inoltre, infine, il sistema su cui sto lavorando utilizza xPDO, quindi non sono sicuro se sia questo il problema.
EDIT: Sembra che PHP restituisce un valore corretto o almeno un valore per esempio qui è una discarica print_r
:
[trans_label] => Ditt f�rnamn?
[trans_description] =>
[trans_defaultValue] => First Name
Così sembra che quando il mio json_encode tocca che stringa è quando si trasforma la stringa su null.
avete fatto imposta il set di caratteri corretto (in markup e come php-header) sulla pagina e ti chiede "SET NA MES UTF8 "prima di selezionare i dati? – 32bitfloat
Hai una query abbastanza complicata lì. Perdonami per aver chiesto l'ovvio: i dati sono corretti? Ottenere valori NULL non è un tipico problema di codifica dei caratteri. – Joni
@JoniSalonen Sì, il mio client SQL recupera le informazioni corrette ma quando invia il codice viene restituito con una stringa NULL. – Peter