2013-04-08 23 views
5

Sto visualizzando NSString in una UIWebview per mostrare il testo con le emoticon personalizzate (immagini) ma ho avuto dei problemi dato che UIWebview non è in grado di rilevare caratteri speciali come \ n, \ r, \ t, spazi bianchi, &, <,> e molti altri ancora della stringa. Come convertire una stringa NSString in HTML da caricare in un UIWebView?NSString to HTML

+0

è possibile scrivere il tutto con tag html .. Invece di solo stringhe .. – iphonic

+0

la stringa non viene static.It è variabile in modo ho di scrivere il algo per convertirlo in HTML –

+0

Molti di più? Di quali altri personaggi di controllo stai parlando? –

risposta

3

Non esiste una soluzione integrata per questo. Devi codificare le entità HTML. C'è un progetto open-source chiamato NSString-HTML che potrebbe soddisfare le tue esigenze.

C'è anche una buona categoria NSString here, che è basata su Google's Toolbox.

+1

la prima libreria non risolve il problema ma sembra seconda libreria potrebbe risolvere il mio problema. Ho già visto quella libreria prima di pubblicare questa domanda, ma non riuscivo a capire il metodo di mio interesse –

+1

Potresti essere interessato a 'stringByEncodingHTMLEntities' (e' stringWithNewLinesAsBRs'). –

0

Hai provato a convertire la stringa HTML in formato UTF8 e quindi a caricarla nella visualizzazione Web?

[webView loadData:[html dataUsingEncoding:NSUTF8StringEncoding] 
        MIMEType:@\"text/html\" 
      textEncodingName:@\"UTF-8\" 
         baseURL:nil]; 
+0

Non capisco –

+0

Non mi meraviglia che tu non abbia capito !! Scusa se ho capito male la domanda. Farò una rapida ricerca e modificherò la risposta se ottengo qualcosa. –

+0

@Shubham vedere se questo aiuta .. scusa ancora .. :) –

0

Stai cercando Trasformazione ICU. Questa funzionalità è racchiusa nella funzione CFString API CFStringTransform() Utilizzo dell'opzione di trasformazione Any-Hex Si consiglia di ottimizzare creando un NSCharacterSet di solo i glifi che devono ESSERE salvati.

1

Esiste infatti una soluzione integrata per questo ... In NSAttributedString. Ecco una categoria per NSString che lo rende facile:

@interface NSString (HTMLString) 
- (NSString *)HTMLString; 
@end 

@implementation NSString (HTMLString) 
- (NSString *)HTMLString { 
    NSDictionary * const exportParams = @{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType}; 
    NSAttributedString *attributed = [[NSAttributedString alloc] initWithString:self]; 
    NSData *htmlData = [attributed dataFromRange:NSMakeRange(0, attributed.length) documentAttributes:exportParams error:nil]; 
    return [[NSString alloc] initWithData:htmlData encoding:NSUTF8StringEncoding]; 
} 
@end