2016-07-01 19 views
0

私はちょうどそれがit's OK for a Unicode string to contain isolated combining charactersを学んだ。UTF8文字列連結の適切な処理

これは、このような文字で始まる文字列の連結に対して、別の質問を引き起こします。

私はUTF8Stringオブジェクトを開発しています。これは、UTF-8文字列処理を容易にするためです。

このオブジェクトは、別の文字列を現在の文字列に連結するconcat()メソッドを持っています。

2番目の文字列が最初に2番目の文字列の最後の文字に結合されないように、2つの文字列の間に改行しないスペースを追加する必要があります。

または、組み合わせが発生すると予想されますか?

+1

最初に文字列内で分解されたテキストを取得するにはどうすればよいですか?おそらく 'strLetter + strDiacritic'式がコードのどこかにあります。その場合は、NBSPを追加するのに正しい*ではありません。 – dan04

+2

別々の基本文字と組み合わせ文字を組み合わせてUnicode文字列を構築することは可能です。私は非常に私がそれを行うことを許可していない文字列クラスに驚かれるだろう。 –

+3

図書館利用者の意図を推測することは、かなり悪い考えです。無作為にスペースを追加すると、時間の98%が間違っています。それらを追加しないと時間の2%が間違っているかもしれませんが、図書館のユーザーが簡単に修正できるものです。 ICUの仕組みを最低限に見直して、この車輪の再発明を避けてください。 –

答えて

2

私はUTF-8文字列処理を容易にするために、UTF8Stringオブジェクトを開発しています。 [...] 2つの文字列の間に改行しないスペースを追加する必要がありますか?

私は間違いないと言います。 UTF-8のようなバイトエンコーディングを処理することは、書記界の境界を扱うよりも別の、より低いレベルの懸案事項です。 2つの問題を混在させることは、予期しない歓迎されないレイヤリング違反になります。

文字列クラスを構築して、文字列クラスターを分割できない単位として処理する文字列クラスを作成したい場合は、それは別の動物です(一貫して行うにはかなりの労力が必要です)。