UTF-8 유니 코드 문자열을 올바르게 표시하는 올바른 방법을 알려줄 수 있습니까?Delphi Berlin에서 UTF-8 문자열 뒤에 백 슬래시와 " 0646"이 표시됩니까?
웹 서비스에서 텍스트 문자열을받는 프로 시저를 호출하고 있습니다. 이 절차는 문자열이 완벽하게 수신되면 잘 동작합니다. 문자열이 UTF-8 텍스트가 포함되어 있기 때문에, 그것은
{"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;
나는 델파이에 대해 거의 알지 못하지만, 코드 예제가 정확한지 확신 할 수 있습니까? 구문 오류가있는 것처럼 보이므로 예제는 [mcve] 여야합니다. – Carpetsmoker
코드 샘플이 유효하지 않습니다. 컴파일되지 않습니다. UTF-8 문자열도 아닙니다. 인코딩 된 UTF-8 문자열입니다. 베를린은 귀하가 메모에 추가하는 내용이 귀하가 제공하는 정확한 가치 이외의 것이라는 것을 알 수있는 방법이 없습니다. 왜 당신은 그것이 다른 것과 다르게 행동 할 것이라고 기대합니까? ''\ u062a \ u0637 \ u0628 \ u064a \ u0640 \ u0640 \ u0640 \ u0642 \ u062f \ u0640 \ u0640 \ u0640 \ u0640 \ u0627 \ u0621 ''문자열을 메모에 넣으라고 말하고 있습니다. 컨트롤을 제공하며, 코드가 수행하는 작업을 정확하게 수행합니다. –
실제로 인코딩 된 유니 코드 문자열은 인코딩 된 유니 코드 문자열입니다. '\ uxxxx'는 UTF-8이나 UTF-16 또는 UTF-32로 디코딩 될 수 있습니다. –