2013-06-25 2 views
0

입력란이있는 양식이 있습니다. 내가 umlauts를 포함하는 텍스트를 쓸 때 db에 값을 저장하고 페이지를 다시로드하면 폼에 움라우트가있는 텍스트가 나타납니다. 예 : 입력 한대로 Bär을 입력하고 페이지를 다시로드하면 저장됩니다. Bär.다국어 입력란을 만드는 방법

지금 문제는 내가 예상대로 러시아어 또는 중국어 문자를 삽입 할 때입니다. 하지만 db에 저장하고 페이지를 다시로드하면 문자가 잘못 표시됩니다.

예 : Москва으로 작성합니다. 양식 및 페이지 새로 고침을 저장 한 후 Москва을 참조하십시오. 이것은 정확하게 표시되지 않는 html 엔티티처럼 보이지만, 이것은 유니 코드 16 진수 문자 코드라고 생각합니다.

어떻게 내 html 양식에 올바르게 표시되는 외래 문자를 저장하고 검색 할 수 있습니까? 모든

답변

1

먼저 그 작동 데이터베이스와 테이블에 기본 collaction을 확인하지 않는 경우
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
을 추가하여보십시오. 번역 할 일이있을 때마다 항상 utf8_general_ci를 사용하고 있습니다. 그게 저에게 맞습니다.

+0

메타 태그는 - 불행히도 변경할 수 없습니다. 그러나 캐릭터 세트를 들여다 보면 실제로 +1을 도울 수 있습니다. – Thariama

0

해결책을 직접 찾았습니다.

실제로 입력 필드의 값은 UTF-8이 먼저 인코딩 된 다음 cp1252가 인코딩되어 데이터베이스에 기록됩니다. 내가 데이터베이스에서 inputfield 데이터를 검색 할 때

내가 문자열 I 출력하기 전에

$inputfield_text=~ s/&(#[xX]?[0-9a-fA-F]+;)/&$1/g; 

이 작은 교체 (펄 코드)를 호출해야합니다.

관련 문제