Pregunta

Estoy llegando a la última etapa de la implementación de mi cuerda (una versión más escalable de String ). Obviamente, quiero que todas las operaciones den el mismo resultado que las operaciones en String s siempre que sea posible.

Hacer esto para operaciones ordinales es bastante simple, pero me preocupa implementar correctamente las operaciones sensibles a la cultura. ¡Especialmente porque conozco solo dos idiomas y en ambos, las operaciones sensibles a la cultura se comportan exactamente igual que las operaciones ordinales!

Entonces, ¿hay alguna cosa específica que pueda probar y tener al menos algo de confianza de que estoy haciendo las cosas correctamente? Sé, por ejemplo, acerca de & # 223; ser igual a SS al ignorar casos en alemán; sobre i punteado y no punteado en turco.

¿Fue útil?

Solución

Pares sustitutos, si planea apoyarlos, incluidas combinaciones no válidas (por ejemplo, solo una parte de una).

Si está codificando y decodificando, asegúrese de mantener el estado suficiente para hacer frente a los bloques arbitrarios de datos binarios para decodificar que pueden terminar a la mitad de un carácter, con la mitad restante en el siguiente carácter.

Otros consejos

La prueba turca es la mejor que conozco :)

Debería imitar las implementaciones de los métodos de cadena y utilizar la biblioteca principal para hacer esto por usted. Es muy difícil tener en cuenta todos los aspectos posibles de cada cultura. En lugar de reinventar la rueda, use el reflector en los métodos de cadena y vea las llamadas internas. Por ejemplo, String.Compare usa CultureInfo.CurrentCulture.CompareInfo.Compare para comparar 2 cadenas en la cultura actual.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top