문제

웹 응용 프로그램을 테스트하는 동안 흥미로운 문제가 발견되었습니다.

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'
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top