2012-09-19 7 views
2

svnlook을 실행하고 전자 메일을 통해 커밋 메시지를 보내는 SVN 후크가 있습니다. 커밋 메시지에 움라우트 (ä, ü, ö 또는 ß)가있을 때 나는 움라우트 대신 "? \ 195? \ 159? \ 195? \ 182"출력만을 얻습니다.SVN 유니 코드 출력 후크

쉘을 통해 스크립트를 실행하면 모든 것이 정상입니다. Subversion이 훅을 실행하면 umlaut가 스크램블됩니다. 나는 또한 사용하여 내 mailer.py 내부의 로케일 환경을 설정

cmd = 'export LC_ALL="en_US-utf8" && svnlook info ' + sys.argv[1]                   

LC_ALL="en_US-utf8" "$REPOS"/hooks/mailer.py "$REPOS" "$REV" 

내 우편물 안에 내가 실행 svnlook 명령을 사용하여 포스트 커밋 후크에서 메일 링 스크립트를 실행하려고

locale.setlocale(locale.LC_ALL, 'en_US-utf8') 

내가 얻고있는 유일한 오류 메시지는 다음과 같습니다

svnlook: warning: cannot set LC_CTYPE locale 
svnlook: warning: environment variable LC_ALL is en_US-utf8 
svnlook: warning: please check that your locale name is correct 

누구나 아이디어가 있으십니까?

답변

3
  1. 귀하의 문제는 훅이 유니 코드 데이터를 얻을 수 세 얼굴
    • 있다
    • 당신의 우편물이 유니 코드를 전송하는 방법 (그것은받을 않습니다 수정되지 않은 형태로 메시지를 로그)
    • 당신의 수 MUA 쇼 ASCII가 아닌 전자 메일의 몸은
( 제대로 메일러에 의해 준비) 그 텍스트를 유니 코드 텍스트를 렌더링 할 수있는, 시청자가 내용을 확인 (체크, 파일에 저장하여 데이터의 메일 링을 교체 후크에 테스트를 위해

  1. 위의 질문의 순서로 답을 얻기를위한

    일부 필요한 단계 실제로는 UTF8입니다. 움라우트의 경우 윈도우의 일부일 수 있습니다. * 문자 집합)

  2. p.1에서 읽을 수있는 텍스트를 얻었 으면 이전에받은 알림의 헤더를 확인하고 Content-Type (charset= 부분, mime-type은 여기에 관계 없음) 및 (선택 사항) Content-Transfer-Encoding. I 정의실제 상태 (us-ascii vs UTF8)과 일치하지 않으며이 경우 MTA와 MUA가 결과로 설명하는 것으로 가정하고 의심되는 것일 수 있습니다. 나도 모르겠다. mailer.py에서 메시지 헤더를 재정의 할 수 있겠지만, 은 올바른 헤더로 메일 메시지를 작성해야한다.
  3. Content-Type: text/plain; charset=UTF8으로 전자 메일을 생성 할 수있을 때, UTF8로 인코딩 된 이메일 처리를위한 MUA (p.0 이전 결과 테스트에서 독립적으로)

PS :이 질문은 ServerFault로 처리되어야합니다. 문제는 주로 포스트 마스터의 영역이며, 실제 포스트 마스터를 볼 기회가 더 많습니다. SF

0

에 대한 개요가) 당신은 당신의 후크 스크립트에이 다음 줄을 추가해야합니다 :

#!/bin/sh 

export LANG="de_DE.UTF-8" 

같은 문제가 있었다,이 날 위해 일했습니다.