Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

273
Vistas
Cadena a matriz de caracteres que devuelve un resultado diferente en Visual Studio y Android Studio

La cadena que quiero convertir en una matriz de caracteres es ষ্টোর, está en Unicode y es una palabra bengalí.

El problema es que cuando lo estoy convirtiendo en Visual Studio , devuelve 6 caracteres, pero cuando lo estoy convirtiendo en Android Studio , muestra 5 caracteres .

En VS estoy usando char[] arrayOfChars = someString.ToCharArray(); y en Android Studio char[] arrayOfChars = someString.toCharArray();

Información de depuración de Visual Studio

Información de depuración de Android Studio

N:B: Mi IDE de Android Studio y la codificación del proyecto son UTF-8. Espero el mismo resultado que Visual Studio en Android Studio.

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Esas dos matrices son equivalentes a Unicode , pero están siendo representadas por diferentes formas de normalización. Lo que parece estar sucediendo es que Java ToCharArray (o representación de cadena) usa una forma de normalización, mientras que C# ToCharArray (o representación de cadena) usa otra.

Esta página contiene un gráfico de diferentes formas de normalización para el texto bengalí: la cuarta fila describe exactamente lo que está viendo:

mesa bengalí

Solo estoy aprendiendo sobre esto ahora, pero me parece que la motivación para esto es que las implementaciones de Unicode puedan seguir siendo compatibles con las codificaciones preexistentes siempre que sea posible y práctico.

Por ejemplo, una codificación preexistente puede haber usado un solo carácter Unicode, mientras que otra codificación preexistente puede haber usado dos caracteres combinados. La solución acordada por la gente de Unicode es, por lo tanto, admitir ambos, a costa de no tener una única representación "canónica", como ha encontrado aquí.

Si desea que su matriz de Java se normalice bajo el formulario de normalización "D" que parece estar usando su matriz de C#, parece que esta página proporciona dicha función. Usted puede estar buscando algo como:

someString = Normalizer.normalize(someString, Normalizer.Form.NFD);

El anexo 15 estándar de Unicode es el documento oficial que describe estos formularios de normalización.

over 4 years ago · Santiago Trujillo Denunciar

0

Debe haber ingresado la cadena de manera diferente.

El texto ষ্টোর es puntos de código Unicode 09B7 09CD 099F 09CB 09B0 , es decir, 2487 2509 2463 2507 2480 , como muestra su C#.

Los valores mostrados por Java, es decir, 2487 2509 2463 2503 2494 2480 , tiene el cuarto carácter 2507 / 09CB como los dos caracteres 2503 2494 / 09C7 09BE .

Mirándolos, son:

ো ↔ 'BENGALÍ VOCAL SIGNO O' (U + 09CB)

contra

ে ↔ 'BENGALÍ VOCAL SIGNO E' (U + 09C7)
া ↔ 'SIGNO VOCAL BENGALÍ AA' (U + 09BE)

que combinados da lo mismo:

ষ্টোর ↔ 09B7 09CD 099F 09CB 09B0
ষ্টোর ↔ 09B7 09CD 099F 09C7 09BE 09B0

Están combinando caracteres , y hay diferentes formas de combinar caracteres para obtener el mismo resultado.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda