2

Open Graph 프로토콜의 일부로 일본어 문자가 포함 된 메타 태그를 생성하는 사이트가 있습니다. 즉, 크롤러를 통해??? Prerender.io를 사용하여 AngularJS 응용 프로그램의 소셜 웹 크롤러에 메타 태그 질문 표

https://developers.facebook.com/tools/debug/

을 사이트

https://www.inkgrph.com/e/210

을 실행하는 경우에는, 메타 태그 content 속성의 일본어 문자는 모두로 표시 ??????? "원시 오픈 그래프 문서 정보"와 같은

http://tabelog.com/

다른 사이트에서 메타 태그에 좋은 일본어 문자를 표시 할 것 같다. 나는 행운과 HTML에

lang="ja" xml:lang="ja"

<meta http-equiv="Content-Language" content="ja">

설정을 시도했습니다.

도움이 될 것입니다.

+0

나는 무슨 일이 일어나고 있는지 정확히 알지 못합니다. 하지만 귀하의 페이지 응답 헤더를 확인하고,''content-type'' 헤더에 charset이 누락되었습니다. ''content-type'' 헤더를''content-type : text/html; charset = utf-8'' –

답변

3

문제는 페이스 북이 캐릭터 세트를 가정해야하므로 해당 사이트가 그 응답의 문자 집합을하지 않는다는 것입니다, 그것은 아마 단순히 물음표 알 수없는 문자로 변환 ANSI를 가정합니다. 언어에 따라 구현 방식이 다르지만 "HTTP 헤더 문자셋 "으로 검색하는 방법에 대한 지침을 찾을 수 있습니다. '

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

을하고 페이스 북이 캐릭터 세트는 UTF-8 그래서 원이다 알 : PHP에서 단순히이다,

Content-Type: text/html; charset=utf-8 

예는이 작업을하려면 : HTTP 헤더는 다음과 같이해야한다 더 이상 일본어 문자를 물음표로 변환하지 마십시오. W3 also made a short list of code examples.

나 자신을 확인하기 위해이 테스트 한, 나는이 같은 헤더로 응답 파일을 만들 때, 페이스 북은 정확하게 일본어 문자를 처리했다. 페이스 북이 문자가 물음표입니다 생각하는 이유는 실제 URL 크롤러가 https://www.inkgrph.com/e/210?_escaped_fragment_=를 사용하는 것이 귀하의 코멘트로가는


, 내가 볼 수 있습니다 그들이 있기 때문에입니다. 브라우저에서 해당 페이지를 열면 물음표도 표시됩니다. 즉 문제는 페이스 북이 페이지를 처리하는 것이 아니라 서버에있는 것입니다.

문제는 지금 무엇

, 대부분의 경우는 일본어를 변경 귀하의 서버가 서버의 실제 콘텐츠 형식은 ASCII가 여전히 있음을 콘텐츠 형식은 UTF-8 응답이 실제로 않지만,이다 문자를 서버에 추가합니다.

는이 문제를 해결하려면, 당신은 단순히 서버의 모든 파일이 UTF-8 인코딩으로 저장되어 있는지 확인해야합니다. 앞으로는 기본 문자 인코딩을 UTF-8 ( here's how to do it in Notepad++this is for Sublime Text; 자신 만의 텍스트 편집기로 시도해보십시오)로 설정하는 것이 유용 할 수 있습니다.그러나 지금은 문자 인코딩을 변경해야합니다. 수동으로 할 수도 있고 자동으로 수행하는 방법을 시도해 볼 수도 있습니다.

내가 발견 한 것은 this SO question이며 이미 자동화 된 charencoding 변환을 다루고 있습니다. this Notepad++/Python approach을 사용해 볼 수도 있지만 언어별로 더 구체적으로 Google을 시도하면 (예 : "파일을 UTF-8 Python으로 변환") 쉽게 찾을 수 있습니다 (Python, Java).

+0

그게 맞는지 나는 잘 몰랐습니다. 그래서 나는 의견으로 남겼습니다. 당신을위한 Upvote! –

+0

그게 문제라고 생각했지만 페이스 북에서 실제로 볼 수있는 페이지는 실제로는 'Content-Type' 헤더가있는 https://www.inkgrph.com/e/210?_escaped_fragment_=입니다. 사실 내 메타 데이터는 모두 자바 스크립트를 통해 생성되므로 Phantom-JS를 사용하여 내 페이지를 크롤링합니다. – Luke

+0

@ 루크가 도움이됩니까? 파일에서 charencoding을 변경해도 작동하지 않는다면 알려주십시오. 그러면 전환 후 페이지의 모양을 다시 볼 수 있습니다. – Joeytje50