이 이상한 글자들을 어떻게 변환하죠?( (, ,, ,, (, (, ))
내 페이지에는 보통 문자 대신 ã, ,, ,, in, in, in 같은 것들이 자주 나타난다.
헤더 페이지와 MySQL 인코딩에는 utf8을 사용합니다.어떻게 이런 일이 일어날까요?
이것들은 utf-8 부호화 문자입니다.표준 ISO-8859-1 문자로 변환하려면 utf8_decode()를 사용합니다.
이러한 문자가 표시되는 경우는, 문자 인코딩을 올바르게 지정하지 않았을 가능성이 있습니다.이러한 문자는 UTF-8 멀티바이트 문자열이 ISO 8859-1이나 Windows-1252와 같은 싱글바이트 인코딩으로 해석되었을 때의 결과이기 때문입니다.
이 경우ë
Unicode 문자를 나타내는0xC3 0xAB 로 부호화할 수 있습니다.ë
UTF-8의 (U+00EB)
그럼에도 불구하고.utf8_decode
도움이 되는 해결책입니다.테이블 자체의 부호화 오류를 수정하고 싶습니다.코드에 해킹을 하는 것보다 나쁜 문자를 스스로 수정하는 것이 더 낫다고 생각합니다.테이블 위에 있는 필드에서만 하면 됩니다.OP에서 잘못된 인코딩 문자를 수정하려면 다음 절차를 따릅니다.
update <table> set <field> = replace(<field>, "ë", "ë")
update <table> set <field> = replace(<field>, "Ã", "à")
update <table> set <field> = replace(<field>, "ì", "ì")
update <table> set <field> = replace(<field>, "ù", "ù")
어디에<table>
mysql 테이블의 이름입니다.<field>
는 테이블 내의 컬럼 이름입니다.여기에서는 Windows-1252에서 utf-8 문자로의 디버깅차트 맵핑 Windows-1252 문자와 UTF-8 바이트의 Latin-1 문자의 전형적인 부정한 부호화 체크리스트를 나타냅니다.
SQL로 문자를 바꾸기 전에 표를 백업해야 합니다.
[이것이 매우 오래된 질문에 대한 대답이라는 것을 알지만, 다시 한번 이 문제에 직면하게 되었습니다. 일부 오래된 Windows 머신에서는 텍스트를 utf8_general_ci 대조 테이블에 삽입하기 전에 올바르게 인코딩되지 않았습니다.]
사실 나한테 맞는 걸 찾았어텍스트를 바이너리로 변환한 다음 UTF8로 변환합니다.
인코딩 문제가 있는 원본 텍스트:만약 '네'라면, 마지막은?
SELECT CONVERT(CAST(CONVERT(
(SELECT CONVERT(CAST(CONVERT(english_text USING LATIN1) AS BINARY) USING UTF8) AS res FROM m_translation WHERE id = 865)
USING LATIN1) AS BINARY) USING UTF8) AS 'result';
수정 결과 텍스트: '네'일 경우 마지막으로 마지막으로 본 것은 무엇입니까?
소스가 두 번 잘못 인코딩되어 두 번 했습니다.한 번만 다음을 사용할 수 있습니다.
SELECT CONVERT(CAST(CONVERT(column_name USING latin1) AS BINARY) USING UTF8) AS res FROM m_translation WHERE id = 865;
포맷에 실수가 있는 점 양해 바랍니다.
언급URL : https://stackoverflow.com/questions/5127744/how-to-convert-these-strange-characters-%c3%83-%c3%83-%c3%83%c2%ac-%c3%83%c2%b9-%c3%83
'programing' 카테고리의 다른 글
PHP 지정된 디렉터리의 모든 하위 디렉터리 가져오기 (0) | 2022.10.08 |
---|---|
kuid_t 및 이와 유사한 데이터 유형은 왜 구조화됩니까? (0) | 2022.09.27 |
json_forwards() 이스케이프 슬래시 (0) | 2022.09.27 |
2개의 열을 기준으로 한 순위 (0) | 2022.09.27 |
여러 값을 반환하려면 어떻게 해야 합니까? (0) | 2022.09.26 |