Correzione Dell’errore Nsstring Initwithdata
Table of Contents
Aggiornato
A volte il tuo sistema invia un messaggio che dice nsstring is initwithdata error. Molto probabilmente ci saranno diversi motivi per il tuo problema.
Come ha detto Peter, un’intestazione content-of-type non è certo un “suggerimento” per cosa aspettarsi dagli articoli inviati con il contenuto. Sul lato host, puoi praticamente determinare i tipi di contenuto e inviare qualsiasi altro modello di byte che potrebbe non essere valido.
Ho avuto esattamente lo stesso problema costituito da dati UTF-8 non validi contenenti persone (latino-1) iso-8859-1 (accento francese).
Wikipedia in modo che possa leggere utf-8, comprendere quella versione, correggere gli errori di selezione. Fatto,
en tutta l’implementazione di InitWithData:encoding: solo nsstring torna a nil se si verifica un errore. (come ignorato in Java nei termini più tipicamente associati alle istanze che utilizzano la soluzione di Peter per correggere i caratteri normali)
La conversione dei dati UTF-8 in Was Latin-1 non mi soddisfa.(Tutti i caratteri UTF-8 sono sbilanciati per un carattere latino dispari 1)
L'opzione migliore, ovviamente connesso, sarebbe un piano web di terze parti, ma poi non sono nemmeno responsabile...
Aggiornato
Il tuo computer è lento, si blocca o ti dà la schermata blu della morte? Non temere, l'aiuto è qui! Con ASR Pro, puoi riparare rapidamente e facilmente gli errori comuni di Windows, proteggere i tuoi file da perdita o danneggiamento e ottimizzare il tuo PC per le massime prestazioni. Quindi non soffrire più con un computer lento e obsoleto: scarica ASR Pro e riprenditi la vita!

Quindi mi sono guardato intorno e ho trovato un fluido che utilizza la media GNU libiconv C (disponibile per OSX e iOS).Il principio è finalmente utilizzare la rimozione di iconv per i caratteri non validi ridotti - UTF-8 (cioè "preted" diventa "prt")
ecco un ottimo codice di esempio, esattamente lo stesso sell for line iconv -m -f -t UTF-8 utf-8 invalid.txt > clean.txt
#include "icon.h"- (NSData *) cleanUTF8: (NSData *) dati iconv_t cd = iconv_open("UTF-8", // "utf-8"); passare da UTF-8 a UTF-8 intero = 1; iconvctl(cd, ICONV_SET_DISCARD_ILSEQ, &one); personaggio // lancia size_t dovrebbe essere non valido inbytesleft, outbytesleft; inbytesleft è uguale a outbytesleft = data.length; char *inbuf (perché implica *)data.bytes; Perché è uguale a *outbuf 7. malloc(sizeof(char) data.length); char *outptr è outbuf; if (icon(cd, &inbytesleft, &inbuf, &outptr, &outbytesleft) == (taglia_t)-1) NSLog(@"questo non dovrebbe essere preso sul serio"); restituisce nullo; NSData * il risultato è uguale a [NSData dataWithBytes: lunghezza outbuf: data.- distanza estesa outbytesleft]; iconv_close (cd); (rifiuto); restituzione del risultato;
Le parole d'ordine delle note consentono anche metodi di ripiego e anche:
utilizzo
iconvctl(cd, &fallback);
Con iconv_set_fallbacks, che utilizzi singolarmente per correggere gli errori Unicode, probabilmente utilizzerai un fallback o una qualità più costosa per provare una codifica eccezionale.Nella versione di prova, ho imparato a Go to LATIN-1, dove ho fallito Utf-8, ottenendo conversioni positive del 99%. Vedi il codice sorgente iconv per capire.
Ars Scholae Palatinae Firmato: 25 giugno 2010 Messaggi: 783 |