with remover remove characters change acento accents accented c# .net windows string string-comparison

characters - remover acento c#



¿Por qué "ss" es igual al carácter de sharp-s alemán ''ß''? (7)

A partir de esta pregunta , me pregunto por qué ä y ae son diferentes (lo cual tiene sentido) pero ß y ss se tratan como iguales. No he encontrado una respuesta en SO incluso si esta pregunta parece estar relacionada e incluso menciona "que ß se comparará igual a SS en Alemania, o similar" pero no por qué.

El único recurso en MSDN que encontré fue este: Cómo comparar cadenas

Aquí se menciona a continuación, pero también carece de por qué :

// "They dance in the street." // Linguistically (in Windows), "ss" is equal to // the German essetz: ''ß'' character in both en-US and de-DE cultures. .....

Entonces, ¿por qué esto se evalúa como true , tanto con la cultura de-DE como con cualquier otra cultura?

var ci = new CultureInfo("de-DE"); int result = ci.CompareInfo.Compare("strasse", "straße", CompareOptions.IgnoreNonSpace); // 0 bool equals = String.Equals("strasse", "straße", StringComparison.CurrentCulture); // true equals = String.Equals("strasse", "straße", StringComparison.InvariantCulture); // true


Alguna información de fondo para ti. Tomado de aquí.

Códigos Alt de Windows

En Windows, las combinaciones de la tecla ALT más un código numérico se pueden utilizar para escribir un carácter que no esté en inglés (letra acentuada o símbolo de puntuación) en cualquier aplicación de Windows. Se encuentran disponibles instrucciones más detalladas sobre cómo escribir acentos con las teclas ALT. Las opciones adicionales para ingresar acentos en Windows también se enumeran en la sección Acentos de este sitio web.

Nota: Las letras ü, ö, ä y ß pueden reemplazarse por "ue", "oe", "ae" o "ss", respectivamente.

Códigos alemán ALT

Sym Windows ALT Code Ä ALT+0196 ä ALT+0228 Ö ALT+0214 ö ALT+0246 Ü ALT+0220 ü ALT+0252 ß ALT+0223 € ALT+0128

ß

En el alfabeto alemán, la letra ß, llamada "Eszett" (IPA: [ɛstsɛt]) o "scharfes S", en inglés "sharp S", es una consonante que evolucionó como una ligadura de "long s y z" (sz ) y "long s over round s" (ss). Al hablar, se pronuncia [s] (ver IPA). Desde la reforma ortográfica alemana de 1996, se usa solo después de vocales largas y diptongos, mientras que ss se escribe después de vocales cortas. El nombre eszett proviene de las dos letras S y Z, ya que se pronuncian en alemán. También se llama Scharfes S (IPA: [ʃaɐ̯.fəs ʔɛs, ʃaː.fəs ʔɛs] en alemán, que significa "S aguda". Su codificación Unicode es U + 00DF.


Algunos hechos antecedentes:

  • En alemán suizo el eszet ha sido eliminado y reemplazado por ss en los años 70, creo

  • Para la conversión en mayúsculas, la regla de reemplazo alemana oficial siempre ha sido y sigue siendo eszet-> SS, aunque hace unos años se definió un eszet en mayúsculas para unicode (U + 1E9E). ¡Nunca lo había visto en ningún lugar salvaje!

  • No se han realizado ni se han realizado cambios o reemplazos para los tres umlaute äöü que siempre han tenido las versiones en mayúsculas adecuadas, a menos que no los tenga. Reemplazarlos por ae, oe, ue es solo una solución, sin embargo, apenas mejor que reemplazar un eszet por una beta o una ''B''.

Por lo tanto, los diferentes resultados de comparación tienen al menos algún sentido, aunque el tratamiento, especialmente la clasificación de wrt, no es realmente uniforme en Alemania, por ejemplo, entre diccionarios o guías telefónicas, listas, índices, etc.


En alemán, el carácter ß (que existe solo en minúsculas) suena como ss . Su uso cambia de vez en cuando y muchas personas confunden ß y ss . Si escribimos una palabra como Fuß (pie) en mayúscula, escribiríamos FUSS . Si un teclado o una fuente no son compatibles con ß , escribimos ss y es (casi, en su mayoría) correcto.

Esto puede explicar por qué ß y ss se manejan como equivalentes si se trata de clasificar.


La mayor parte de lo que leo aquí es verdad. Pero hay algunos conceptos erróneos involucrados, entonces, como alemán, permítanme aclarar esto:

ß / ẞ es una genuina carta alemana que proviene de una ligadura de ss o sz pero nunca ss. Eso es mucho tiempo seguido por s o z.

Una s media s en alemán se pronuncia / z / mientras que una s inicial y final se pronuncia / s /. Como la letra z en alemán siempre se pronuncia / ts /, se necesitó una manera de distinguir aquellos casos más raros, donde esa regla se rompe agregando otra letra y finalmente formando esa ligadura para esos casos, donde un sonido de media sílaba / s / era necesario.

El sonido / s / nunca aparece en palabras genuinas alemanas al principio y solo en una palabra extranjera, donde está (tada!) Escrito con sz: Szene. Por lo tanto, la necesidad de una capital ß (ẞ) apareció por primera vez como capitalización de palabras completas. ß y ss no son lo mismo, históricamente sz y ß son, ¡por eso se llama "eszett"! Hay ciertas reglas que permiten la traducción de ß a ss si ß no está disponible, lo que no es cierto en los entornos modernos.

La mayúscula correcta de Maße es MAẞE, y la capitalización correcta de Masse es MASSE. Ambas son palabras diferentes en alemán.

Entonces, en alemán real, ss es / s / cortocircuitando la vocal anterior y ß es / s / después de una vocal larga. Suponer que ss y ß son iguales en cualquier comparación es simplemente incorrecto porque podría obligar a las palabras de significado completamente diferente a ser iguales. Período.


Porque así es como los alemanes definen su propio lenguaje. O tal vez más exactamente: cómo los que definen la ordenación / clasificación para el alemán han definido cómo los alemanes definen el idioma alemán.

En gran medida, el inglés desafía que la mayúscula de i sea I pero otros idiomas que usan el alfabeto latino (por ejemplo, turco) están en desacuerdo.


Si mira la página Ä , verá que no siempre Ä es un reemplazo para Æ (o ae), y todavía se usa en varios idiomas.

La letra ß lugar:

Si bien la letra "ß" se ha utilizado en otros idiomas, ahora solo se usa en alemán. Sin embargo, no se usa en Suiza, Liechtenstein o Namibia. [1] Los hablantes de alemán en Alemania, Austria, Bélgica, [2] Dinamarca, [3] Luxemburgo [4] y Tirol del Sur, Italia [5] siguen las reglas estándar para ß.

Entonces el ß se usa en un solo idioma, con una sola regla (ß == ss), mientras que Ä se usa en múltiples idiomas con múltiples reglas.

Tenga en cuenta que, teniendo en cuenta que el plegado de casos es:

El plegado de mayúsculas y minúsculas se utiliza principalmente para la comparación de texto sin casillas, como identificadores en un programa informático, en lugar de la transformación de texto real.

El Unicode 7.0 Case Folding Properties oficial nos dice que

00DF; F; 0073 0073; # LETRA PEQUEÑA LATINA SHARP S

donde 00DF es ß y 0073 es s, entonces ß puede considerarse, para la comparación sin caja, como ss.


Solo espera medio siglo.

Este año, después de más de un siglo de disputas, German agregó oficialmente el como un reemplazo válido en mayúsculas para la versión en minúscula ß . Pasará algún tiempo antes de que la gente se acostumbre a la nueva forma mayúscula , pero tan pronto como la versión de capital domine, no habrá razón para continuar con este mal

String.Equals("Mr. Meißner", "Mr. Meissner", StringComparison.CurrentCulture) == true;

cortar.