Zend 프레임 워크를 사용한 프로젝트의 Diacritics 문제
-
06-09-2019 - |
문제
웹 응용 프로그램을 테스트하는 동안 흥미로운 문제가 발견되었습니다.
LocalHost (Windows) 및 온라인 테스트 서버 (Linux)에 응용 프로그램이 있습니다. 둘 다 동일한 DB (Linux 서버)에 연결되어 있습니다. Linux 서버에 위치한 응용 프로그램의 양식을 통해 하나의 텍스트 필드를 편집하려고하면 결과에서 Diacritics를 자르고 DB에 저장합니다. 그러나 동일한 조치를 시도했을 때 Locahost (Windows)에서 동일한 코드로 전체 텍스트를 제가 쓴대로 Diacritics로 저장합니다.
PHP 구성을 확인하려고했지만 두 시스템 모두에서 동일한 구성이 있습니다.
어떤 문제가 원인을 찾아야하는지 찾아야 할 곳이있는 사람이 있습니까?
해결책 3
다른 시스템에서 다르게 작용하는 필터를 하나의 필터를 사용하는 데 문제가 있음을 발견했습니다.
다른 팁
Windows 시스템의 MySQL 인스턴스의 하나 이상의 문자 설정이 UTF8로 설정되지 않은 것 같습니다.이 쿼리를 실행하십시오.
show variables like '%character%'
출력은 문자 _encoding 관련 서버 변수로 내 데이터베이스 출력에서이를 실행합니다.
character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_filesystem binary
character_set_results utf8
character_set_server utf8
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/
내 가장 좋은 추측은 하나 이상의 것들이 라틴어 1
또한, 당신은 collation을 확인하고 싶을 수도 있습니다. 즉, 이것을 실행합니다.
show variables like '%collation%'
그리고 당신은 다음과 같은 것을 얻을 것입니다.
collation_connection utf8_general_ci
collation_database utf8_general_ci
collation_server utf8_general_ci
두 서버 모두 동일한 인코딩으로 페이지를 제공합니까?
Firefox에서 페이지를 방문하여 마우스 오른쪽 버튼을 클릭하고 '페이지 정보보기'. 인코딩 항목이 있습니다. 이것들이 올바르게 전송하려면 UTF-8 또는 유사한 인코딩이 필요합니다.
그런 다음 데이터베이스 설정을 확인하십시오. UTF8을 사용하려면 MySQL 연결을 설정해야하며 테이블과 열도 UTF8로 설정해야합니다.
연결 후 다음 쿼리를 발행하여 설정된 MySQL 연결 문자를 설정할 수 있습니다.
SET NAMES 'utf8'