Go! Bbuwoo: Charset Detecting on PHP에 달린 최근 댓글/트랙백 목록https://my.oops.org/뭘 이런걸..2024-03-19T19:51:35+09:00Textcube 1.10.10 : Tempo primo김정균님의 댓글김정균https://my.oops.org/126#comment10922009-02-22T05:20:19+09:00"mozilla code 에 c++ 로 지원하고 있으니 이걸 포팅하면 되겠지 하고 쉽게 생각을 했는데, xpcom 구조를 알기 전에는 쉽게 뗄 수 있을 놈이 아니더군요." 라고 적어 놓았는데, Perl 모듈을 보니 가져다 사용하고 있더군요. 그래도 libchardet 을 c/c++ 용 library 로 만들어 보았습니다. mod_chardet 의 python c api 를 굳이 이용할 필요가 없어 졌네요. :-)
조만간 업데이트를 하겠습니다.상진군님의 댓글상진군https://my.oops.org/126#comment10932009-02-23T02:05:43+09:00안녕하세요 ^^
개발해주신 모듈 설치에 성공하였습니다.
다만 온라인 용으로 사용시의 예제가 필요한데 혹시 제작해주실 수 있으신지요..
죄송합니다;김정균님의 댓글김정균https://my.oops.org/126#comment10942009-02-24T00:55:34+09:00mod_chardet 0.0.2 로 업데이트 했습니다. Python C API로 지원하던 mozilla universal charset detect mode 를 제거하고, libchardet 을 만들어서 C++로 지원하도록 변경했습니다. 속도가 캡빵 빨라졌습니다. :-) python-chardet 보다 정확도가 조금 더 좋습니다.
ftp://ftp.oops.org/pub/oops/php/extensions/mod_chardet 에서 받으실 수 있습니다.
http://cvs.oops.org/?cvsroot=PHP-Module&module=mod_chardet&file=README,v&rev=1.3 를 참조해서 빌드 하실 수 있습니다.
이 버전은 libchardet 이 기본 모드로 지원되며, CHARDET_ICU mode 로 ICU chardet mode 를 사용할 수 있으며, 개발시의 debug mode로 CHARDET_PY (default option 아님) 를 이용할 수 있습니다.김정균님의 댓글김정균https://my.oops.org/126#comment10952009-02-24T00:57:01+09:00source 안에 있는 test.php 와 http://cvs.oops.org/?cvsroot=PHP-Module&module=mod_chardet&file=Reference,v&rev=1.1 를 참조하시면 될 것 같습니다. test.php 역시 제일 첫라인을 제외하면 web에서 그대로 사용하실 수 있습니다.상진군님의 댓글상진군https://my.oops.org/126#comment10962009-02-24T07:59:16+09:00감사합니다!! libchardet으로 하니 에러도없이 바로 작동하는군요~
잘 사용하겠습니다 (__) 감사합니다김정균님의 댓글김정균https://my.oops.org/126#comment11092009-04-01T15:17:07+09:00browser 로 접속하지 마시고 ftp client 로 접속 하시면 됩니다.xylosper님의 댓글xylosperhttps://my.oops.org/126#comment11102009-04-01T21:48:23+09:00그런거였군요. 감사합니다.
방금 다운 받아서 확인해보았는데, 라이센스가 MPL이더군요.
본래 소스는 MPL/GPL/LGPL중에 선택가능하게 되있던거 같은데, GPL로도 이용가능하게 배포하실 생각은 없으신가요...?김정균님의 댓글김정균https://my.oops.org/126#comment11112009-04-02T13:58:46+09:00제가 개발하는 코드들은 대부분 필요에 의해서 제작을 하는 것입니다. 그렇기 때문에 순수하게 제가 처음부터 설계/코딩을 하는 경우 보다는 비슷한 것을 찾아서 제가 사용하기 편하도록 수정/개발을 하는 경우가 많습니다.
그러다 보니, 항상 license가 문제가 골치거리가 되는데, 가장 좋은 방법은 원 코드의 license 를 유지하는 것이 가장 편한 방법이더군요. 그리고 libcharset 의 원형이 Mozilla Universal Charset Detector 이기는 하지만, 저는 이 코드를 Perl Moudle 에서 친절하게 잘 분리해 놓은 것을 C wrapper 를 만들어서 c/c++ library 로 둔갑을 시켜 놓은 것입니다. 그리고 해당 Perl Module 이 license를 MPL로 해 놓아서 저 역시 이를 승계한 것이고요.
다만, Universal Chardet code 를 보면 MPL/GPL2/LGPL2.1 중에 하나를 선택할 수 있도록 되어 있습니다. 그리고, 저와 Perl module 개발자가 추가한 코드에서 이 문구는 역시 포함이 되어 있기 때문에 재배포를 하시고 싶고, license 를 변경하고 싶다면 저작권에 위배되지 않도록 결정을 하시면 될 것 같습니다.
저도 나름 살짝 고민했다가 GPL보다 MPL이 더 자유롭지 않을까 생각해서 MPL로 그냥 고민없이 승계를 했습니다.xylosper님의 댓글xylosperhttps://my.oops.org/126#comment11082009-03-31T05:27:04+09:00안녕하세요.
libchardet을 쓰고 싶어서 다운 받으려고 했더니 사용자 이름과 암호를 요구하네요... 특정 그룹에게만 공개된 자료인가요...?xylosper님의 댓글xylosperhttps://my.oops.org/126#comment11122009-04-02T16:27:51+09:00그렇군요. 그럼 라이브러리로 빌드하지 말고 그냥 소스를 직접 기존 프로젝트에 넣어버려야겠네요.
이래저래 신경써주셔서 감사합니다.김정균님의 댓글김정균https://my.oops.org/126#comment11132009-04-03T02:16:44+09:00제 짧은 소견으로는 배포가 문제라면 귀찮게 소스 관리를 하시느니, 정적으로 link 시키는 것이 더 편하지 않을까 싶습니다. MPL 은 GPL 이나 LGPL 처럼 과격하지 않으니, static link 하시거나 dynamic link 하신 후에, MPL 라이센스 파일 하나 넣어 주시는 것으로 끝이 납니다. 전반적으로 GPL/LGPL로 배포를 하고 싶으시다면, 특정 부분에 call 을 MPL call 을 사용하신다고 명기를 하시면 될 것 같습니다. MPL은 다른 라이센스와 결합하는데 크게 지장이 없는 라이센스이니까요.xylosper님의 댓글xylosperhttps://my.oops.org/126#comment11142009-04-06T03:24:53+09:00아...그렇게해도 되는군요. GPL과 MPL이 호환이 안된다고 해서, 문제가 될줄 알았습니다. 감사합니다.김정균님의 댓글김정균https://my.oops.org/126#comment11252009-10-05T21:36:35+09:00libtool 과는 상관이 없습니다. ICU library가 지원되지 않을 경우에 처리 버그가 존재하고 있었네요. 이 버그 수정해서 0.0.3으로 release해 놓았으니, 0.0.3으로 해 보시기 바랍니다.
Ubuntu 9.04 의 기본 패키지들과 libchardet 1.0.1 로 build할 때 문제없이 되었습니다. ^^;상진군님의 댓글상진군https://my.oops.org/126#comment11242009-10-05T10:20:03+09:00정균님 안녕하세요.
요 모듈 아직도 서포트 받을 수 있는지 궁금하네요 ^^
libtool 버전이 2.2.6으로 올라가면서 CDPATH관련 에러두 나구요. --tag를 찾네요
그리고
/home/sangjins/mod_chardet/php_chardet.h:104: error: expected specifier-qualifier-list before 'UErrorCode'
/home/sangjins/mod_chardet/php_chardet.c: In function 'zif_chardet_detect':
/home/sangjins/mod_chardet/php_chardet.c:375: error: duplicate case value
/home/sangjins/mod_chardet/php_chardet.c:367: error: previously used here
/home/sangjins/mod_chardet/php_chardet.c:392: error: 'CharDetObj' has no member named 'status'
/home/sangjins/mod_chardet/php_chardet.c: In function 'chardet_obj_init':
/home/sangjins/mod_chardet/php_chardet.c:422: error: 'CharDetObj' has no member named 'status'
/home/sangjins/mod_chardet/php_chardet.c: In function 'moz_chardet':
/home/sangjins/mod_chardet/php_chardet.c:442: error: 'CharDetObj' has no member named 'status'
/home/sangjins/mod_chardet/php_chardet.c:448: error: 'CharDetObj' has no member named 'status'
의 에러도 나네요; 잘 사용하다가 재설치 하려니 이런 문제가 발생했습니다;
바쁘신데 이거 실례가 되지 않을런지.. ㅜㅜ