Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

266
Views
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.

about 4 years ago · Santiago Trujillo
2 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!