Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

237
Visualizações
Cadena a matriz de caracteres que devuelve un resultado diferente en Visual Studio y Android Studio

La cadena que quiero convertir en 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.

about 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

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.

about 4 years ago · Santiago Trujillo Relatório

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.

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda