¿Cómo convierto una cadena wchar_t de mayúsculas a minúsculas en C++?Conversión de cadenas de caracteres anchas a minúsculas en C++
La cadena contiene una mezcla de caracteres japoneses, chinos, alemanes y griegos.
Pensé en usar towlower ...
http://msdn.microsoft.com/en-us/library/8h19t214%28VS.80%29.aspx
.. pero la documentación dice que:
El caso conversión de towlower es específico de la localidad. Solo los caracteres relevantes para la configuración regional actual se cambian en el caso.
Editar: Tal vez debería describir lo que estoy haciendo. Recibo una consulta de búsqueda Unicode de un usuario. Originalmente está en codificación UTF-8, pero lo estoy convirtiendo en un widechar (puedo estar equivocado en la redacción). Mi depurador (VS2008) muestra correctamente los caracteres japoneses, alemanes, etc. en el "reloj rápido variable". Necesito revisar otro conjunto de datos en Unicode y encontrar coincidencias de la cadena de búsqueda. Si bien este no es un problema para mí cuando la búsqueda es sensible a las mayúsculas y minúsculas, es más problemático hacerlo insensible a mayúsculas y minúsculas. Mi (quizás ingenuo) enfoque para resolver el problema sería convertir todos los datos de entrada y salida a minúsculas y luego compararlas.
otro enfoque sería utilizar algoritmos de comparación que ignoran el caso. Y el caso no es tu único problema. Sin normalizar la cadena, los diacríticos, por ejemplo, pueden considerarse parte de uno ('é',' Õ'), o varios caracteres individuales (''e',' ~ O'). La correcta normalización (NFC/NFD/NFKC/NFKD) antes de la comparación es vital en su situación. – Abel
Abel, publícalo como respuesta adecuada para que pueda ser votado como debería ser. Es casi la única respuesta correcta en esta situación ... –