터키어 문자가 포함 된 문자열을 삽입하는 데 문제가 있습니다. 문자열로 "öçşığüÖÇŞİĞÜ"을 삽입하려고합니다.PHP로 MySQL 데이터베이스에 삽입하는 동안 터키어 문자 문제
header("Content-Type: text/html; charset=windows-1254");
나는 (그것이 중요하지 않지만, 나는 그것을 쓰기)와 아약스에서 데이터를 얻을 여기
$json = filter_input_array(INPUT_POST);
은 다음과 같습니다
나는 PHP 파일의 머리에 아래에 표시된 라인을 넣어 삽입 명령 :
$query = "INSERT INTO users (name) VALUES ('" . $user->get_name() . "')";
이제 변수에 값을 할당하는 두 가지 사례를 시도했습니다 :
CASE 1
- PHP : $ 이름 = $의 JSON [ '이름'];
- 브라우저 : Ã¶Ã§ÅŸÄ ± ğüÃ-A ‡ AA ° ÄÃœ
- 데이터베이스 : Ã§ÅŸÄ ± ğüÃ-A ‡ 아자 ° ĞÜ
CASE 2
- php : $ name = iconv ("UTF-8", "ISO-8859-9", $ json [ 'name']);
- 브라우저 : öçşığüÖÇŞİĞÜ
- 데이터베이스 : çþýðüÖÇÞÝÐÜ
"1"문자열의 내 할당 유형입니다, "2"의 결과 "가 $ 사용자 - 에코> get_name();" "1"의 배정에 따라, "3"은 데이터베이스 셀의 값입니다. 나는 CASE 2에서 "echo"에 참된 결과를 얻을 수 있지만 손상된 결과는 데이터베이스에 삽입됩니다. 내 DB 데이터 정렬은 "utf8_turkish_ci"입니다.
(PHP 5.2.18, MySQL은 5.6.13)
이 솔루션은 db에 null을 삽입했습니다. 반면에 메아리는 "?" 각 문자 대신 물음표. – JoshuaJeanThree