UTF-8ユニコード文字列を正しく表示するための正しい方法を教えてください。UTF-8文字列はバックスラッシュとして表示され、その後にデルファイベルリンでは「 0646」という数字が表示されますか?
Webサービスからテキスト文字列を受け取るプロシージャを呼び出しています。この手順は、文字列が完全に受信された場合にうまく機能します。文字列がUTF-8のテキストが含まれているので、それが数字としてUnicode文字を表示...
{"displayName":"\u062a\u0637\u0628\u064a\u0640\u0640\u0640\u0642 \u062f\u0639\u0640\u0640\u0640\u0640\u0640\u0627\u0621"
デルファイベルリンはUTF-8をサポートする必要がありますが、私はUTF-8を符号化するために使用するために機能しないとテキスト(アラビア語テキスト)を表示する!
Procedure TF_Main.GnipHTTPSTransfer(Sender: TObject; Direction: Integer; BytesTransferred: Int64; PercentDone: Integer; Text: String);
Begin
Inc(Transfer_Count);
L_Counter.Caption:=IntToStr(Transfer_Count);
write(GNIP_Text_File, Text);
M_Memo.Lines.Add(text);
End;
私はDelphiについてはほとんど分かりませんが、コード例が正しいことをご存じですか?構文エラーがあるように見えるので、あなたの例は[mcve]でなければなりません。 – Carpetsmoker
コードサンプルが無効です。それはコンパイルされません。これもUTF-8文字列ではなく、エンコードされたUTF-8文字列です。ベルリンはあなたがメモに追加しているものがあなたがそれを提供している正確な価値以外であることを知る方法がありません。なぜあなたはそれがそれとは異なった振る舞いをすると思いますか?文字列 '' \ u062a \ u0637 \ u0628 \ u064a \ u0640 \ u0640 \ u0640 \ u0642 \ u062f \ u0640 \ u0640 \ u0640 \ u0627 \ u0621 ''をメモに入れるように指示していますあなたのコードが何をすべきかを正確に示しています。 –
実際には、エンコードされているUnicode文字列に関係なく、エンコードされたUnicode文字列です。 '\ uxxxx'は、UTF-8やUTF-16やUTF-32としてデコードできます。 –