Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1

    Supporto per il cirillico su mySql via php

    Salve,
    vorrei permettere agli utenti della mia applicazione iOS Virtual Tags di scrivere messaggi anche nelle tastiere non latine come ad esempio il cirillico. Tuttavia tutti i molteplici suggerimenti che ho trovato su internet quali:
    mysql_query("SET NAMES CP1251"); o UTF-8
    ma continuano a scrivermi i ?? ???? invece dei caratteri scritti (potete verificare su virtualtags.it, anche se da lì non è chiaro se il problema sia in scrittura o rilettura: tuttavia il DB riporta lo stesso contenuto e quini il problem è ,almeno, in scrittura).

    Quale è la soluzione finale per scrivere sul DB mySql i caratteri cirillici e, possibilmente, restituirli, quando ricercati, all'interno di una pagina xml/html?

  2. #2
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    devi avere la pagina (meta encoding...), la connessione al db (set names...) ed il db stesso (table collation...) in utf8
    e poi funzionera' anche il cinese.

  3. #3
    Scusa: mi puoi dare il comando esatto da impartire al DB da php che ne ho visti tanti che non so quale sia buono. Stessa cosa per il comando meta da inserire nelle pagine web.

    Inoltre ho un codice UTF per ogni lingua sul DB: devo usare la versione unicodу_

    In effetti sul DB manualmente sono riuscito a sciverci in cirillico: ma non via php: ed anche sul sito web continuano ad uscire punti interrogativi.

  4. #4
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    1) nel frame che carichi (miafoto.it/iPhone/php/allTags.php), metti l'html corretto, con head, body e tutto, e metti il
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> nel head
    2) nei tuoi script, dopo la connessione al database, aggiungi questa riga:
    mysql_set_charset('utf8');
    3) controlla che le tue tabelle abbiano la collation "utf8_general_ci"

  5. #5
    Così è, se guardi il sorgente di http://www.miafoto.it/iPhone/php/allTags.php
    ma continuano a comparire i punti interrogativi. Inoltre, se scrivo manualmente sul DB, mi si rimettono i punti interrogativi appena cambio riga: ciò nonostante abbia impostato la tabella ad: UTF-8 Unicode / utf8_general_ci
    Aggiornamento: Ora curiosamente i caratteri cirillici sembrano rimanere sul DB, ma sulla pagina web continuano a non comparire.

    Cosa altro posso tentare?

  6. #6
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    credo tu non abbia fatto correttamente il 2)
    assicurati di mettere quella riga subito dopo la connessione al database.

  7. #7
    Ora ho fatto anche quello ( e peraltro non funziona) ma in quel primo caso - il penultimo messaggio - avevo scritto il testo russo a mano nel DB e lì ancora sta, al contrario di quello inserito mediante lo script php dove i punti interrogativi sono anche nel DB.

  8. #8
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    3 cose:

    - anche lo script da dove inserisci i dati ha il meta corretto?
    - quando tu dici di scrivere in cirillico, non e' che in realta' fai copia/incolla da qualche parte? magari lo fai da una sorgente con un altra codifica. Prova a incollare da wikipedia.
    - dopo la tua query che estrae i dati, fai un echo mysql_client_encoding(); per assicurarti che ti restituisca utf8 effettivamente

  9. #9
    No, lo scrivo a mano con la tastiera russa: da proprio l'impressione che il testo rimanga corretto anche passando su un'altra tabella e ritornando. Non penso quindi che il problema sia quello.
    Non è che bisogna fare qualcosa nella select? Non so.
    Aggiormanento: come vedi ora funzia: nella lista avevo messo la codifica utf solo nell'html, ma non nello script.

    Ora rimane solo la difficoltà dell'inserimento via php.

  10. #10
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    Originariamente inviato da fbartolom
    No, lo scrivo a mano con la tastiera russa: da proprio l'impressione che il testo rimanga corretto anche passando su un'altra tabella e ritornando. Non penso quindi che il problema sia quello.
    Non è che bisogna fare qualcosa nella select? Non so.
    il problema e' sicuramente nella catena browser-php-database. In uno di questi punti la codifica non e' utf8.
    Assicurati di aver fatto il p2 di sopra, assicurati di avere i meta corretti anche nella pagina dove inserisci i dati, assicurati che mysql_client_encoding(); dopo la query ti restituisca utf8, assicurati di avere anche le colonne e non solo la tabella in utf8..

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.