strcoll(): Trotz korrekter Kollation werden falsche Werte zurückgegeben



  • Hi(gh)!

    Nachdem ich das Problem mit dem nicht funktionieren wollenden setlocale() durch Lektüre von man locale lösen konnte (mein System kennt "German" als LC_COLLATE-Wert nicht, es muss schon "de_DE.utf8" heißen...) gibt mein Beispielprogramm aus dem "Erlenkötter" (C - Bibliotheksfunktionen sicher anwenden) zumindest keine Fehlermeldung mehr aus.

    Allerdings werden die beiden Teststrings "Bar" und "Bär" nach wie vor nicht richtig "sortiert" - laut Buch sollte strcoll("Bar", "Bär") einen Wert größer als 0 zurückgeben, tatsächlich gibt es einen negativen Wert zurück.

    Könnte es eventuell noch andere Kollationen für Deutsch geben? Wo finde ich eine Übersicht über die möglichen Werte für LC_COLLATE?

    Bis bald im Khyberspace!

    Yadgar



  • Yadgar schrieb:

    (mein System kennt "German" als LC_COLLATE-Wert nicht, es muss schon "de_DE.utf8" heißen...)
    ...
    Allerdings werden die beiden Teststrings "Bar" und "Bär" nach wie vor nicht richtig "sortiert" - laut Buch sollte strcoll("Bar", "Bär") einen Wert größer als 0 zurückgeben, tatsächlich gibt es einen negativen Wert zurück.

    Sind denn Deine Strings auch UTF-8?

    Falls nicht, vielleicht versuchst Du mal sowas wie

    de_DE
    

    oder

    de_DE@euro
    

    als locale ???

    Ciao
    MM



  • Yadgar schrieb:

    Wo finde ich eine Übersicht über die möglichen Werte für LC_COLLATE?

    Bist du schizophren?
    Liest du die Antworten auf deine Fragen?
    Kannst du lesen?


Log in to reply