Tengo un extraño problema de codificación mi String

Por ejemplo:

NSString *str = @"\u0e09\u0e31\u0e19\u0e23\u0e31\u0e01\u0e04\u0e38\u0e13";
NSString *utf = [str stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSLog("utf: %@", utf);

Esto funcionó a la perfección en el registro de

utf: ฉันรักคุณ

Pero, cuando trato de usar mi cadena que me analizados desde JSON con la misma cadena:

//str is string parse from JSON
NSString *str = [spaces stringByReplacingOccurrencesOfString:@"U" withString:@"u"];
NSLog("str: %@, str);
NSString *utf = [str stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSLog("utf: %@", utf);

Esto no funciona en el registro de

str: \u0e09\u0e31\u0e19\u0e23\u0e31\u0e01\u0e04\u0e38\u0e13
utf: \u0e09\u0e31\u0e19\u0e23\u0e31\u0e01\u0e04\u0e38\u0e13

He encontrado la respuesta por horas, pero todavía no tienen ni idea de

Sería muy apreciada! Gracias!

  • Intenta [str UTF8String]; antes de NSString *utf = [str stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; ?
  • pegue el código que crea los espacios
  • Sí que tengo. No funciona :/
InformationsquelleAutor user3378387 | 2014-03-04

1 Comentario

  1. 2

    La cadena devuelta por JSON es realmente diferente – contiene escapó barras diagonales inversas (por cada «\» que puede ver cuando la impresión de la cadena JSON, lo que contiene en realidad es @»\»).

    En contraste, su creadas manualmente cadena ya se compone de «ฉันรักคุณ» desde el principio. No inserte caracteres de barra diagonal inversa – en su lugar, @»\u0e09″ (et. al.) es un código único punto.

    Puede sustituir esta línea

    NSString *utf = [str stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

    con esta línea

    NSString *utf = str;

    y su ejemplo de salida no iba a cambiar. El stringByReplacingPercentEscapesUsingencoding: se refiere a un tipo diferente de escape. Ver aquí acerca de por ciento de codificación.

    Lo que usted necesita hacer, es analizar la cadena de representaciones de cadena de puntos de código unicode. Aquí hay un enlace a una posible solución: Usando Objective C/Cacao para unescape caracteres unicode. Sin embargo, yo le aconsejo que visite el JSON de la biblioteca que está utilizando (si usted está utilizando uno) – es probable que proporcionar alguna forma de manejar esto de forma transparente. E. g. Kit jsonkit hace.

    • Su segundo enlace funcionó a la perfección! Gracias! Sólo me salvó la vida!
    • Hola tengo & en mi url de la imagen así que si me pasan con el servicio de servidor de tomar como parámetro nuevo modo cómo resolverlo. puedes por favor decirme. gracias @janis K

Dejar respuesta

Please enter your comment!
Please enter your name here