0
델파이에서 동적 HTML을 생성 중입니다. 웹 페이지 본문에 UTF-8 문자열을 표시하는 데 문제가 없습니다. HTMLEscape를 사용하여 일반 문자열을 인코딩합니다 (문자열 목록의 모든 문자열은 이전에 이스케이프 처리되었습니다).델파이의 동적 페이지에서 자바 스크립트 내부의 문자셋
이 문제는 동적 페이지 내부의 스크립트 (javascript) 함수에서 발생합니다. 단어 "사용자 선호도"와 문자열을
'<script language="javascript" charset="UTF-8">'+#10+
(...)
'function ProcessAddUserButton(){'+#10+
'alert("'+web_content_sl[70]+'");'+
'}'+#10+
내가 경고 상자에
usuário
를 얻을 수 있지만, 나는 HTML 본체 내부에 동일한 문자열을 사용하는 경우 올바르게 표시됩니다. 위에서 볼 수 있듯이 스크립트 정의 안에 charset을 포함 시키려고했지만 성공하지 못했습니다. 같은 페이지에서 같은 문자열과 다른 결과가 나타나는 이유를 모르겠습니다.
동적 페이지에서 메타 태그는 다음과 같습니다 사람이 경험
'<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />'+#10+
으로?
, 내가 문자열 인코딩 (HTMLescape)를 비활성화해야합니다. 나는 이미 그것을했으며 결과는 "usu & # 225 리오"대신 "usu rio"입니다. –
@MiguelE 예, 문자열이 UTF-8로 인코딩되지 않았기 때문입니다. 이 파일이 일부 파일에 있으면 UTF-8 인코딩으로 저장되지 않습니다. 데이터베이스에서 온 것일 경우, 데이터베이스는 UTF-8을 사용하지 않습니다. 웹 사이트가 UTF-8 인코딩을 사용한다고 주장하는 것만으로는 충분하지 않으며 UTF-8 인코딩 된 컨텐츠를 전송해야합니다. – Esailija
문자열 원점이 파일 또는 db에서 생성 된 것이 아닙니다. "web_content_sl.Add (HTMLEscape ('to doos os dados do novo usuário.')); // 70"기본적으로 Delphi XE에서 UTF8이어야합니다. 구조체는 TStringlist입니다.) 주기에 파일이나 DB가 없습니다. –