viewcvs에서 한글 파일명
글쓴이: 송지석 / 작성시간: 목, 2005/04/21 - 6:40오후
리눅스에 cvs를 서버로 쓰고 있고 viewcvs를 깔아서 웹로그를 보게 하고 있습니다.
개발은 윈도우에서 하고요.
그래서 만들어진 파일들의 이름은 EUC-KR 코드로 됩니다.
그런데 url을 항상 UTF-8로 보냄 옵션으로 된 상태에서 주소창에 한글 파일 경로를 치면 주소 에러가 나네요. (unknown location)
그래서 mod_url을 설치하고
다음과 같이 옵션을 줬는데 별 변화가 없네요....
<Directory "/usr/local/viewcvs-1.0-dev/www/cgi"> # for korean AddDefaultCharset EUC-KR AllowOverride None Options None Allow from all # mod_url CheckURL On ClientEncoding UTF-8 ServerEncoding EUC-KR </Directory>
혹시 viewcvs에서 한글 파일명 관련 성공하신 분 있으신가요?
Forums:
Re: viewcvs에서 한글 파일명
mod_url은 아파치가 파일을 발견하지 못했을 경우에 작동됩니다. 이 경우는 viewcvs.cgi가 파일 이름을 넘겨받아서 바로 처리해버리기때문에 mod_url은 무용지물
제 경우, 그냥 한글 이름의 파일로 테스트해보니, viewcvs에서 한글 이름이 url인코딩되네요. IE,Firefox모두 문제 없이 보입니다.
온갖 참된 삶은 만남이다 --Martin Buber
Re: viewcvs에서 한글 파일명
오 이상하네요.. 음.. 물론 저도 viewcvs의 첫 페이지부터 하나씩 내려가면 잘 보입니다. 그러나 저는 경로에 한글 이름을 직접 친 경우에도 되야 되거든요. 그러면 이 경우는 mod_url로 해결이 안되고 viewcvs자체를 고쳐야 합니까?
rommance.net
Re: viewcvs에서 한글 파일명
주소창에 경로를 직접 치면 UTF-8로 인코딩되어 넘어갑니다만,
form의 input으로 넣어서 submit하면 페이지의 지정된 인코딩(charset)으로 전달됩니다.
즉, 페이지이름이 euc-kr일 것이므로 viewcvs의 header 템플리트에 meta 태그에 euc-kr을 charset으로 지정하게끔 하고
header부분에 goto창을 하나 만들어서 그곳에다 한글파일 이름을 넣을 수 있도록 하는 것이 가장 빠른 해결방법이 되지 않을까 싶군요
음 그렇다면 mod_url에 옵션으로 ModUrlForce가 있으면 어떨
음 그렇다면 mod_url에 옵션으로 ModUrlForce가 있으면 어떨까요?
그렇게 되면 viewcvs 디렉토리의 설정에 ModUrlForce True 로 해놓고 사용하면 한글 경로명도 온전히 될텐데요..
코드를 많이 고쳐야 할까요?
rommance.net
[code:1]AddDefaultCharset utf8AddDefau
저 같은 경우 이걸로 해결 했습니다.
음 저는 그렇게 해도 똑 같네요.[code:1]<Director
음 저는 그렇게 해도 똑 같네요.
rommance.net
저 같은 경우에 소스 보기로 보면요 utf8 이 아니네요..[co
저 같은 경우에 소스 보기로 보면요 utf8 이 아니네요..
<meta http-equiv="Content-Type" content="text/html;charset=euc-kr">
euc-kr 로 되어 있네요..
혹시 시스템의 locale 의 문제는 아닐까 그냥 생각해 봅니다..
LANG=ko_KR.EUC
여기를 수정 해보시면 어떨지요..대충 기억이 나는것 같습니다.
여기를 수정 해보시면 어떨지요..
대충 기억이 나는것 같습니다.
~/viewcvs/templates
안에 있는 파일중에
<meta http-equiv="Content-Type" content="text/html;charset=euc-kr">
를 euc-kr로 수정해서 해결 한것 같습니다.
이걸로 한번 해보세요...
AddDefaultCharset utf8
는 다른 시스템 때문에 추가 했었던 걸 제가 착각 했나 봅니다.
즐거운 하루 되세요~
어디 소스를 보면 그게 나오나요?저는 viewcvs 페이지 소스를 봤
어디 소스를 보면 그게 나오나요?
저는 viewcvs 페이지 소스를 봤는데 charset 부분이 없어서요.
rommance.net
[code:1]~/viewcvs/templates/header.ezt[/
~/viewcvs/templates/header.ezt
viewcvs를 설치하신 디렉토리를 한번 보세요..
저곳을 수정한 걸로 기억 합니다.
[code:1]~/viewcvs/templates/*[/code:1]
~/viewcvs/templates/*
안에 보시면 여러개의 파일이 있는데요
그곳에 파일들을 몇개를 수정 해주셔야 할것 입니다.
header.ezt를 수정해봤지만 그대로읻네요 음..
header.ezt를 수정해봤지만 그대로읻네요 음..
rommance.net
그 파일 말고도 몇개가 있는데요.. viewcvs/template
그 파일 말고도 몇개가 있는데요..
viewcvs/templates/* 안에 있는 파일들 모조리 검사 해보세요..
그리고 viewcvs 페이지를 소스 보기로 한번 보세요 어떻게 되어 있는지 확인 해보세요..
혹시 안되시면 메세지 한번 주세요
혹시 안되시면 메세지 한번 주세요
head 쪽 태그 있는 소스는 header.ezt error.ezt정도
head 쪽 태그 있는 소스는 header.ezt error.ezt정도 뿐입니다.
에러메시지가 python 안에서 나거든요.
python 소스 자체의 문제 아닐까요
rommance.net
현재 사용 버젼은 0.9.2 를 사용중입니다.[code:1]<h
현재 사용 버젼은 0.9.2 를 사용중입니다.
이런식으로 수정했거든요[/b]
[code:1]<!DOCTYPE html PUBLIC "-
저는 1.0 Dev를 쓰는데 그것과 별 차이는 없을 겁니다. 저도 같은 부분을 추가했습니다만...
rommance.net
제 생각에도 별 차이가 없을것 같습니다.만약에 viewcvs 에서
제 생각에도 별 차이가 없을것 같습니다.
만약에 viewcvs 에서 html 만들때부터 한글이 깨져서 나온다면 브라우져에 아무리 인코딩을 해도 깨져서 보이는건 마찬가지 일것 같습니다.
혹시 CVS에 등록된 파일 이름이 깨져서 저장된것인지 체크 해 볼 필요가 있을것 같습니다.
CVS 파일 하나 열어서 확인 한번 해보세요..
혹시 저장 자체가 utf8 으로 되어 있는건 아닌지 생각 해봅니다.
얼른 해결이 되시면 좋겠네요...ㅠㅠ
그리고 kldp.net 에 있는 CVS를 보았는데 일단 인코딩이 utf-
그리고 kldp.net 에 있는 CVS를 보았는데 일단 인코딩이 utf-8 입니다.
그래서 코멘트의 한글이 깨져 보입니다. 물론 인코딩을 euk-kr로 바꾸니 잘 보입니다.
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
이렇게 되어 있네요 보이는 부분은 실질적으로는 euc-kr 로 되어 있는데 mime type을 utf-8로 되어 있네요..
혹시 이거랑 비슷한 문제가 아닐까요?
브라우져에서 인코딩이 뭘도 되어 있는지 확인 해보시고요 인코딩을 한번 변경 한번 해보세요...
일단 서버의 인코딩은 utf-8이고요 윈도우에서 클라이언트를 사용하기 때
일단 서버의 인코딩은 utf-8이고요 윈도우에서 클라이언트를 사용하기 때문에 파일명은 당연히 깨집니다.
대신에 export LANG=ko_kr.euc_kr 하고 리포지토리를 직접 읽어보면 한글로 제대로 되어있고 아파치의 viewcvs 옵션에 AddDefaultCharset EUC-KR 하면 파일명이 한글로 된 파일들이 제대로 보입니다. 로그 메시지도 euc-kr인데 잘 보이고요.
그런데 직접 url을 치면 경로가 틀렸다고 안보이는 겁니다.
viewcvs에서는 내부적으로 보여줄 때 한글 파일명은 url encoding 해서 보여주므로 클릭해서 보는 데는 아무 문제 없습니다.
직접 url 을 치면 url encoding 이 안되어있는 상태에서 viewcvs.cgi로 인자가 utf-8 인코딩된 문자열이 들어가게 되므로 이와 같은 현상이 나오는 게 아닐까요?
그래서 말씀해주신 meta 태그나 AddDefaultCharset 은 별 관계가 없어보입니다.
rommance.net
[quote="송지석"]head 쪽 태그 있는 소스는 header.ezt
음, 소스가 아예 나오니 소스 고치기 쉽겠군요.
그냥 다음과 같이 고치면 안되나요?
(297줄에 다음을 추가해보세요.)
온갖 참된 삶은 만남이다 --Martin Buber
[quote="wkpark"][quote="송지석"]head 쪽 태그 있
rommance.net
[quote="송지석"]음, 소스가 아예 나오니 소스 고치기 쉽겠군요
cjkcodecs을 깔으셔야죠.
일단 KoreanCodecs 를 깔아서 그 문제를 해결했습니다...그
일단 KoreanCodecs 를 깔아서 그 문제를 해결했습니다...
그런데
여전히 unknown location 에러가 뜨네요.
죄송하지만 다시 이 문자열을 url encoding하도록 할 수 있을까요? 파이썬은 잘 몰라서 말입니다. 혹시 그렇게 하면 제대로 되려나 해서요..
rommance.net
[code:1]/ document / 01. 사전준비자료 /한글문서.tx
/ document / 01. 사전준비자료 /한글문서.txt
이처럼 한글도 제대로 보입니다.
내용까지 잘 보이고 있습니다.
제가 해준일은
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
이게 다 입니다.
아참 그리고 브라우져에 utf8 으로 보냄 옵션을 끄고 쓰고 있습니다.
혹시 이게 문제가 될것 같다는 생각이 듭니다.
요즘 한글로 된것들이 제대로 되지 않아서 그냥 끄고 살고 있습니다...
브라우져에 utf8 으로 보냄 옵션을 끄고 쓰고 있다면 별 문제 없을 겁
브라우져에 utf8 으로 보냄 옵션을 끄고 쓰고 있다면 별 문제 없을 겁니다. 저는 사용자들이 아무 것도 바꾸지 않아도 잘 되게끔 하고 싶어서 말이죠....
rommance.net
utf8 으로 보냄 옵션을 활성화 하고 해보았습니다.전혀 영향을
utf8 으로 보냄 옵션을 활성화 하고 해보았습니다.
전혀 영향을 받지 않았습니다.
한글 이름의 파일의 내용이 잘 보여 졌습니다.
아주 잘 보이더군요...
무엇이 문제인지 확인이 더 필요 할것 같습니다.
음 그런가요? 전 왜 안될까요? -_-;; 제가 운영하는 서버 세개 다
음 그런가요? 전 왜 안될까요? -_-;; 제가 운영하는 서버 세개 다 그런데. --;;;
이번엔 처음 보는 파이썬 코드까지 고쳐가면서 만일에 경로 찾는 데 실패하면 UTF8->EUC-KR 한 다음에 hex 코드로 고쳐서 넣게 해봤습니다...만
역시 오류가 나는군요. 위의 %b9%ae%bc%ad 는 '문서'의 EUC-KR hex 값입니다. (재밌는 것은 이 %b9%ae%bc%ad를 주소창에 넘겨주면 제대로 보인다는 거죠. 뭔가 있는데 파이썬은 처음이라 힘드네요...
혹시 궁금하신 분이 있을까봐 어떻게 했냐면
lib/compat.py에
추가
viewcvs.py의 294행 아래에
추가.
rommance.net
EUC-KR로 강제 인코딩 시키는 방법
client로는 TortoiseCVS를 이용하면서, viewvc1.0.3을 이용한 조회 기능을 이용합니다.
제가 겪은 문제는 viewvc로 조회시 익스플로의 인코딩이 UTF-8로 인식함에 따라,
한글이 깨지는 것이었습니다. 익스플로의 인코딩을 한국어(EUC)로 선택하면 잘나오지만,
매번 인코딩을 바꿀 수 는 없는 문제이지요...
이를 해결하기 위해서는 viewvc/lib/sapi.py 부분을 수정하니 잘되더군요...
sapi.py 에서 UTF-8 로 되어 있는 부분을 EUC-KR 로 수정하였습니다.
모두 3개 line이 있습니다.
예) def header(self, content_type='text/html; charset=UTF-8', status=None):
를
def header(self, content_type='text/html; charset=EUC-KR', status=None):
로 수정...
원인은 TortoiseCVS가 EUC charset을 이용하기 때문에,
서버상에 EUC-KR로 파일이 저장되는데, 서버의 환경이 UTF-8이기 때문에,
viewvc에서는 UTF-8로 인코딩되도록 출력하기 때문에 생기는 호환성 문제가 있는게 아닌가 예상합니다...
댓글 달기