2017-12-17 13 views
1

純粋なLuaでutf8文字のためにstring.lowerの良い実装を見つけることができません。どちらもC++ライブラリであり、プロジェクトでC-パートにアクセスできないので、使用できません。つまり、utf8.lowerはデフォルトでstring.lowerに設定されています。明らかにそれは動作しません。Lua 5.2 - utf8 lower関数 - 純粋なLUA実装ですか?

解決策はありますか?たぶん、誰かがこのことを実装する方法のヒントを与えることができますか?

+0

限定された言語(たとえば母国語)では、あなた自身で 'utf8.lower'を書くことができます。 –

+0

主な問題は、私は複数の言語で動作する拡張を開発していることです。 – user64675

+0

各国の最初の顧客はあなたにアルファベットで小文字の表を送ってください:-) –

答えて

2

ユニコードで大文字と小文字の変換を行う(エンコードに関係なく)のはではなく、の簡単な演習です。 Unicodeの大文字と小文字の変換を実装するには、Unicode文字のプロパティテーブルにアクセスする必要があります。アルゴリズム自体は、「文字が大文字の場合は小文字のバージョンに置き換えてください」という意味ではありません。

それはできないと言っているわけではありません。しかし、深刻なUnicodeを必要とするほとんどの人が、独自のコードを書くのではなく、ICUやその他のライブラリを使用するのがデフォルトになってしまう理由があります。