Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    405

    [C] Rappresentazione UTF8

    Ciao a tutti
    Mi chiedevo come si potrebbe rappresentare un testo in UTF8 in C
    Mi spiego...

    Facendo:

    codice:
    char *s = "prova";
    ogni lettera è grande 1 byte. Ecco mi chiedevo come fosse possibile rappresentare un testo in utf8 dove ogni letterà può occupare da 1 byte a 4 byte.

    Un char * è una sequenza di byte quindi ci si può mettere di tutto, l'unico problema ovviamente è che funzioni come strlen() non funzionerebbero...inoltre confronti tipo s[0]==s[1] non andrebbero neanche.

    Come si potrebbe risolvere?
    Conviene creare un nuovo tipo con grandezza fissa di 4 byte e poi scorrere tutto il testo utf8 suddividendo lettera per lettera e piazzarlo dentro alla variabile di questo nuovo tipo?


    Grazie

  2. #2

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254

    Re: [C] Rappresentazione UTF8

    Originariamente inviato da dail
    Come si potrebbe risolvere?
    Meglio non risolverlo! Tenere in memoria e quindi gestire stringhe in UTF-8 (o in generale un MBCS "Multi-byte character set") è molto scomodo e noioso.
    In genere si usa o ASCII o Unicode (UTF-16).

    Originariamente inviato da dail
    Conviene creare un nuovo tipo con grandezza fissa di 4 byte
    No non conviene, dovresti gestirlo tu e farti le "tue" funzioni simil strcpy, strlen ecc.....
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    405
    Originariamente inviato da menphisx
    wchar ?

    mmm non mi piace....perchè è vincolato dal pc in uso.....wchar prende automaticamente il locale "setlocale()" io qui ho utf8 di default, ma se do il programma ad un giapponese probabilmente di default non ha lo stesso....

    come potrei risolvere?

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    405

    Re: Re: [C] Rappresentazione UTF8

    Originariamente inviato da andbin
    Meglio non risolverlo! Tenere in memoria e quindi gestire stringhe in UTF-8 (o in generale un MBCS "Multi-byte character set") è molto scomodo e noioso.
    In genere si usa o ASCII o Unicode (UTF-16).

    No non conviene, dovresti gestirlo tu e farti le "tue" funzioni simil strcpy, strlen ecc.....
    ù


    si hai ragione, dovrei crearmi dlele funzioni tutte mie....ma non vedo alternativa.....
    si usare ASCII sarebbe perfetto, ma purtroppo lettere òàùòùàòè o caratteri strani non vengono gestiti....riguardo invece utf16, dovrei crearmi ugualmente delle funzioni apposite.....con quanti byte lavora per carattere?


    grazie

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    405

    Re: Re: [C] Rappresentazione UTF8

    Originariamente inviato da andbin
    Meglio non risolverlo! Tenere in memoria e quindi gestire stringhe in UTF-8 (o in generale un MBCS "Multi-byte character set") è molto scomodo e noioso.
    In genere si usa o ASCII o Unicode (UTF-16).

    No non conviene, dovresti gestirlo tu e farti le "tue" funzioni simil strcpy, strlen ecc.....
    niente mi sa che anche utf16 lavora dai 2 ai 4 byte....quindi è la stessa identica cosa

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    405
    up

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    405
    a nessuno viene in mente una soluzione?

  9. #9
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565
    Appoggiati ad una lib esterna, come questa
    O dai un'occhiata a questo link
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    405
    Originariamente inviato da XWolverineX
    Appoggiati ad una lib esterna, come questa
    O dai un'occhiata a questo link
    il primo è in C++ io cercherei qualcosa per il C,
    il secondo spiega i wchar ma come dicevo prima usano il locale del pc quindi non il programma non è standardizzato .....
    ma comunque, pensavo....e usare esclusivamente iconv() ?
    cioè senza importare funzioni o librerie esterne....con iconv posso convertire e amen.....no?

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 © 2024 vBulletin Solutions, Inc. All rights reserved.