Kamailioとは何ですか?データベースには何が格納されますか?
現在のところ、今日のソフトウェアはすべて、UTF-8
の文字エンコードを使用する必要があります。 MySQLでは、構文はCHARACTER SET utf8mb4
です。
あなたは2つを言及しましたCOLLATIONs
;文字エンコーディングではなく、ソート順と関係があります。言及された2つは文字セットに対応します
utf32
- 1文字あたり4バイトがかなり無駄です。事実上誰もそれを使用しません。私は今日それを使う良い理由はない(私が考えることができる)。
latin1
- 1文字あたり1バイト。西ヨーロッパを支配しますが、アジアはありません。これはMySQLの古いデフォルトです(テーブルがあるため)。
私はKamailioを変更しようとすると分かりません。
MySQLが文字セットの違いを処理する方法の注意点:MySQLに接続するときはクライアントにエンコードを指定する必要があります。ときINSERTing
とSELECTing
(可能な場合は、必要に応じて、および)次に、MySQLはクライアントエンコードと列エンコーディングの間で変換します。この自動変換により、現在、西欧の文字には何も間違いはありません。しかし、ギリシャ語、中国語などは、latin1
に格納しようとすると、乱れ/失われます。
次に、バイナリは透過的ですか? –
@JavierValencia - _If_テーブル内の 'CHARACTER SET'は文字を保持することができ、_if_クライアント内の文字のエンコーディングを正しく識別し、_if_ 2つの文字セットの間にマッピングがあると、MySQLは正しくビットを変更しますフライ( 'INSERT'と' SELECTing')です。 'binary' _code_は、静的/動的設定によって駆動されます。 'バイナリ'データは_Operating Systems_で同じように保存されます。 (あるいは別のものを求めていますか?) –
'utf8mb4'と' utf32' _probably_は他の文字セットにマップできます。 (「それは彼らの仕事です」) –