2016-09-01 3 views
-1

PHP to MySQL을 사용하여 제품 CSV를 가져 오려고합니다. 가져 오기를 시도 할 때 database table에 제대로 추가되지 않은 이상한 문자가 있습니다.PHP CSV 가져 오기 이상한 캐릭터 가져 오기

Product Name on CSV File 

알바 Cook'on Braadpan Lavendelblauw ovaal 24cm - 4,2 리터 내가 가져 오기 기능이

알바 Cook'on Braadpan Lavendelblauw ovaal 24cm A를 실행할 때 가지고

제품 이름 € "4,2 Liter

내 코드는

와 같습니다.

4,내가이 수입 페이지

$pd_name=mb_convert_encoding(($emapData[1]), 'UCS-2LE', 'UTF-8'); 

Output ~ Alva Cook'on Braadpan Lavendelblauw ovaal 24 cm – 4,2 Liter 

올바르게 제품 이름을 표시하는 솔루션으로이 기능을 사용하지만 DB 테이블에 삽입을 위해 다음과 같이 이름을 mysql_real_escape_string를 사용하는 경우, 그것은 slashes 많이 추가하고 제대로 작동하지 .

$pd_name=mysql_real_escape_string(mb_convert_encoding(($emapData[1]), 'UCS-2LE', 'UTF-8')); 


Output ~ A\0l\0v\0a\0 \0C\0o\0o\0k\0\'\0o\0n\0 \0B\0r\0a\0a\0d\0p\0a\0n\0 \0L\0a\0v\0e\0n\0d\0e\0l\0b\0l\0a\0u\0w\0 \0o\0v\0a\0a\0l\0 \02\04\0 \0c\0m\0 \0 \04\0,\02\0 \0L\0i\0t\0e\0r\0 

SQL database 테이블 UTF을 지원하고 우리가 일반적으로 양식을 사용하여 제품을 추가 할 때 우리는이 문제에 직면하지 않는 사람이이 문제를 해결하는 방법을 알고있다. 감사합니다

+0

사용 utf8_encode(); 그것이 효과가 있기를 바랍니다. –

+0

ENTRRE 렌더링 체인 전체에서 동일한 문자 세트를 사용해야합니다. PHP 자체는 문자열의 문자 세트에 관한 것이 아닙니다. 문자열은 한 묶음의 바이트를 포함하는 문자열입니다. 이러한 바이트가 나타내는 것은 PHP 자체와 관련이 없습니다. 실제 표현이 중요한 문자열을 처리하기 시작할 때입니다. UTF를 기대하면서 출력/디스플레이 환경에 대해 말하지 않았 으면 utf-8로 변환하면 "mangled"문자가 표시됩니다. –

+0

@KamleshGupta 동료가 작동하지 않는다 –

답변

-1

당신은 기능 mysql_real_escape_string은 더 이상 사용되지되었다는 사실로 시작해야합니다

이 확장은 PHP 5.5.0에서 사용되지 않습니다, 그리고 그것은 PHP 7.0.0에서 제거 된 경고. 대신 MySQLi 또는 PDO_MySQL 확장을 사용해야합니다. 자세한 내용은 MySQL : API 가이드 선택 및 관련 FAQ를 참조하십시오. 이 기능에 대한 대안은 다음과 같습니다 mysqli_real_escape_string() PDO :: 따옴표()

는 그런 다음 mysqli_set_charset

공식 주제 PHP 문서와 함께 mysqli_real_escape string을 사용해야합니다

+0

사이트에는 수백 개의 mysql 함수가 있습니다. 그래서 나는 mysqli에 그것들을 찾아서 변환 할 시간이 없다. 나중에 우리는 이것을 고려할 것이고, 어쨌든이 문제를 해결할 것인가? –