csv 엑셀파일로 db에 데이터를 올린 후 그누보드 검색에서 한글이 검색되지 않음

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
csv 엑셀파일로 db에 데이터를 올린 후 그누보드 검색에서 한글이 검색되지 않음

QA

csv 엑셀파일로 db에 데이터를 올린 후 그누보드 검색에서 한글이 검색되지 않음

답변 1

본문

1. csv 파일을

2. 엑셀파일로 만들어 db에 데이터를 올린 후

3. 그누보드 검색에서 한글이 검색되지 않습니다. (혹 게시판 검색창에서 한글을 보내면 mysql 이 인식하지 못하는 걸 까요)

 

db는 utf8-general-ci 로 되어 있습니다. php 코딩 또는 mysql 설정을 어떻게 바꾸면 해결 될까요

영어는 검색이 잘 됩니다. 

게시판에서 검색으로 한글을 보내면, 한글을 그누보드가 인식하지 못하는 것 같은데, 그누보드 어디를 수정해야 한글 검색이 될까요. 

이 질문에 댓글 쓰기 :

답변 1

DB 및 PHP의 인코딩 설정 일치와 그누보드 검색 로직의 한글 처리 확인이 필요합니다.

먼저 MySQL 데이터베이스 테이블이 utf8_general_ci로 설정되었는지 확인하고,

PHP 파일과 웹서버의 문자셋이 UTF-8로 설정되었는지 검증해야 합니다.

이후, 그누보드의 검색 쿼리가 적절히 처리되고 있는지,

한글 입력값이 MySQL에 정상 전달되는지 점검합니다.

 

- CSV 파일을 생성할 때 인코딩이 UTF-8이 아닌 경우,

  한글 데이터가 DB로 저장되는 과정에서 깨질 가능성이 있음.

- 데이터베이스 또는 테이블의 문자셋이 utf8-general-ci로 설정되어 있다면

  한글 저장은 가능하나, PHP와의 문자셋 설정 불일치로 인해 검색이 실패할 수 있음.

- 검색 시 한글 입력값($stx)이 MySQL 쿼리로 전달되는 과정에서

  인코딩 문제가 발생할 가능성이 있음.

 

 

1. CSV 파일을 UTF-8로 저장:

- 엑셀에서 "다른 이름으로 저장"을 선택.

- - "CSV UTF-8(쉼표로 분리)" 형식으로 저장.

- 저장 후 텍스트 편집기로 열어 한글이 정상적으로 보이는지 확인.

2. MySQL 데이터베이스와 테이블 설정을 확인:

SHOW VARIABLES LIKE 'character_set%';

- character_set_client, character_set_connection, character_set_database,

  character_set_results, character_set_server 모두 utf8로 설정되어 있어야 함.

- 테이블 및 컬럼 문자셋 확인:

SHOW FULL COLUMNS FROM table_name;

- 테이블 또는 컬럼 문자셋 변경:

ALTER TABLE table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

3. PHP와 MySQL 연결 설정 확인

- PHP 코드에서 MySQL 연결 시 문자셋을 utf8로 설정:

mysqli_set_charset($conn, 'utf8');

- PHP 파일의 Content-Type 헤더를 UTF-8로 설정:

header('Content-Type: text/html; charset=utf-8');

4. 그누보드 검색 로직 확인 및 수정

- /bbs/search.php에서 검색어 처리 부분을 확인:

  - - 검색어가 한글로 입력될 경우 urlencode나 urldecode 처리가 필요할 수 있음.

- 코드 수정 예시

// UTF-8 설정
mysqli_set_charset($conn, 'utf8');
// 한글 검색어 처리
$stx = mysqli_real_escape_string($conn, urldecode(trim($_GET['stx'])));
// 검색 쿼리
$sql = "SELECT * FROM board WHERE subject LIKE '%$stx%' OR content LIKE '%$stx%'";
5. 한글 데이터가 MySQL에 올바르게 저장되었는지 확인

SELECT * FROM table_name WHERE column_name LIKE '%한글%';
- 한글 데이터가 깨졌다면 CSV 파일부터 다시 업로드
답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 0
© SIRSOFT
현재 페이지 제일 처음으로