2015-01-21 3 views
0

매번 phpmyadmin을 통해 MySQL 데이터베이스에 테이블을 내 보내면 따옴표, 큰 따옴표 및 일부 대시가 이상한 문자로 변환됩니다. 왜, 여기 내 MySQL의 코드입니다 :MySQL로 내보내기 할 때 .sql로 내보낼 때 Mysql이 따옴표를 변환합니다.

CREATE TABLE IF NOT EXISTS `oasis_top_slide_show` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `image` varchar(20) NOT NULL, 
    `title` varchar(50) DEFAULT NULL, 
    `description` varchar(100) DEFAULT NULL, 
    `order_id` int(11) NOT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=22 ; 

-- 
-- Dumping data for table `oasis_top_slide_show` 
-- 

INSERT INTO `oasis_top_slide_show` (`id`, `image`, `title`, `description`, `order_id`) VALUES 
(10, 'sYadS7V8Wm.jpeg', 'The Percik Restaurant & Bar', 'Enjoying tropical cocktails at our bar or at the swimming pool during “Happy Hourâ€', 7); 

참조 -> € œHappy HOURA €이

그것은 다음과 같이해야하는 동안 우리의 바에서 또는 수영장에서 열대 칵테일을 즐기기 -> "해피 아워"(DOUBLE QUOTE) 동안 술집이나 수영장에서 열대 칵테일 즐기기

+2

'latin1'뿐만 아니라 UTF-8로 연결 및 테이블을 설정해야합니다. – mario

+1

직접 큰 따옴표를 삽입하지 않았습니다. 아마도 유니 코드 세트의 처음 127 문자가 아닌 워드 프로세서와 [인쇄상의 인용 부호] (https://en.wikipedia.org/wiki/Quotation_mark)를 붙여 넣었을 것입니다. @mario가 말했듯이, 당신의 연결에 UTF-8을 사용하십시오. –

+0

연결 및 테이블을 UTF-8로 설정하는 방법? 위 코드에서 이미 -> CHARSET = utf8을 넣으려고 시도하지만 여전히 실패합니다. –

답변

1

내보내기 파일을 표시하는 데 사용하는 응용 프로그램은 latin1 인코딩을 사용하고 문자가 인코딩되므로 3 바이트 E2 80 9 C에 의해.
utf-8에서이 세 바이트는 Unicode Character 'LEFT DOUBLE QUOTATION MARK' (U+201C)을 인코딩합니다. http://www.fileformat.info/info/unicode/char/201c/index.htm

. mysql (또는 사용중인 응용 프로그램)은 인코딩 된 utf-8 데이터를 내 보냈지 만 latin1로 인코딩 된 데이터를 보았습니다.

+0

어쩌면,하지만 그 코드를 새 데이터베이스로 가져올 때. 이상한 문자가 삽입되며 견적은 삽입되지 않습니다. 그러면 웹 브라우저에 이상한 문자가 인쇄됩니다. T.T –

+0

가져 오기 응용 프로그램은 latin1 인코딩 된 데이터를 읽거나 해석하지만 utf-8로 인코딩됩니다. 같은 것. – VolkerK

관련 문제