본문 바로가기

쓰기

안녕하세요...
요즘 Aral이란 프로그램 덕에 갑자기 컴퓨터가 좋아진 사람입니다.
다시한번 모든 개발자분께 감사하구요..

저도 아주아주 미약한 실력이지만 .. 참여해 보려고 합니다. (Aral에 도움될 실질적 가능성 0.0001%)
제가 관심가지는 부분은
단순님이 작업하시는 EzTranceXP 사전파일 편집기인데요...(이하 단순파일)

어찌어찌해서 단순파일 포멧구조는 완벽히는 아니지만 풀어냈거든요..
그래서 개인적으로 단순님파일 갱신되면 개인적으로 만든 사전파일이랑 합쳐서 사용하고 있는데요
그게 일단은 단어 하나 추가하는데도 이버튼 저버튼 눌러가며 복잡한데다가
문제는 컴이 느려서 그런지... 단어가 많아져서 그런지 ....
EzTrance를 이용해서 새 단어하나 추가하고 저장하는데 걸리는 시간이 장난 아니게 걸리거든요 (해보신분은 알거에요)
오늘 보니 단순님본인도 더 이상 제보단어를 처리하기 어렵다고 말씀하시더라구요(그 노고가 어느정도인지 짐작이감)

그래서 생각에 텍스트 파일로 작업한 다음 이걸 일괄적으로 사전 파일로 변경시키면
편하겠다 생각이 들더라구요.

문제는 메모장에서 텍스트 파일로 작업하면 UTF코드로 작성되어지는데...
이걸 그 사전파일로 만들려면 일어부분은 SHIFT-JIS 한글은 KS코드로 변환해야 하거든요
근데 이런쪽에는 제가 전혀 아는게 없어서(다른쪽도 마찬가지지만)
그래서 이렇게 도움을 요청합니다.


UTF->SHIFT-JIS 변환 소스나 라이브러리
UTF->KS 변환 소스나 라이브러리
이랑 기왕이면 이 반대되는 코드
등이 알고 싶습니다.

프로그램은 예전 도스시절에 잠시 해보았구요...
지금 가지고 있는 컴파일러는 VC 6.0이에요
많은 도움부탁드립니다.


분류 :
Talk
조회 수 :
13980
등록일 :
2008.09.02
14:40:55
엮인글 :
https://arallab.hided.net/3767/d19/trackback
게시글 주소 :
https://arallab.hided.net/board_devtalk/3767

봉래인형

2008.09.02
18:32:14

* MultiByteToWideChar 로 UTF 를 wchar 로 변환 이후, wchar 를 WideCharToMultiByte 로 SHIFT-JIS 로 변환.
* iconv 계열 함수 사용.

대충 이 두가지 방법이...

Hide_D

2008.09.02
22:43:11
버그가 있지만 참고해 보세요.
이지트랜스 사용자 사전 변환기

호기심맨

2008.09.08
12:11:21

아 답변이 늦었습니다.
가르켜 주신거 적용하고 확인하고 하다보니 시간이 훌쩍 지나가버렸네요
너무 잘되네요
봉래인형님 히데님 너무 감사합니다.

아 그런데 하다보니 의문이 하나 더 생겨서요....염치불구하고 다시 재질문드릴게요
메모장으로 UTF-8포멧으로 저장된 파일불르면 항상 처음에 0xbfbbef코드가 붙드라구요
이것이 모든 UTF-8문서에는 반드시 붙여줘야 하는 헤더인지
아니면 메모장이란 프로그램에서만 특수하게 쓰이는 코드인지... 궁금하네요

문제는 이데이타가 MultiByte...거쳐 WideTo...로 ShiftJis로 컨버트되면 0x63 '?'으로 기록되기 때문에...
어떤 용도로 쓰이는 데이타인지 알아내야 좀더 깔끔한 프로그램이 될거 같네요..
혹시 아신다면 다시한번 도움 부탁드립니다. (꾸벅) 

아차차.... 그리고 하나만 더 질문 올릴게요..
문자열이 UTF-8이나ShiftJis그리고 KS코드인지 검사할수 잇는 간단한 함수같은게 있나요?

Hide_D

2008.09.16
23:09:22
답변이 늦었습니다.
죄송합니다 ^^;;

1. 유니코드로 기록된 경우에 유니코드임을 알리기 위해
쓰이는 BOM기호라고 합니다.
있어도 되고 없어도 됩니다만
비유니코드 파일에선 없애줘야겠죠?

2. MS-949와 Shift-JIS를 따로 구분해 주는 녀석은 아쉽게도 없습니다. (유니코드 <-> 비 유니코드 구분은 가능)
List of Articles
번호 제목 글쓴이 조회 수 추천 수 날짜 최근 수정일
공지 Talk [필독] 테스트필터 사용시 주의사항 라파에 155436   2008-08-03 2008-12-16 00:03
64 Talk 으아아앍 SVN [1] Hide_D 10267   2008-09-27 2009-01-06 01:24
구조가 꼬였네요 orz 어쩌지[...]  
63 Talk 픽스 라인 연기로 인한 임시 대책 Hide_D 10821   2008-09-26 2009-01-06 01:24
본래 목적인 FixLine이 완성이 늦춰지면서 약간 작전을 변경하도록 하겠습니다. FixLine을 완성시키는 것은 유지하고 FixLine을 3개로 쪼갭니다. OutRuby : FixLine의 TextOnly옵션 DivideLine : FixLine의 Base 기능(DCOnly 대체용) FixChar : FixLine의 Add...  
62 Talk 일단, 옵션창 이렇게 생기면 되나요? file Hide_D 11569   2008-09-22 2009-01-06 01:25
 
61 Talk 조만간 멀티플러그인은 기본 기능으로 흡수시킬까 합니다. 아랄 11346   2008-09-21 2009-01-06 01:25
그리고 ExtTextOut문제를 빨리 해결.. 기리기리 최신 패턴에 대한 업데이트 SVN 저장소 정리하기 등등.. 할게 많군여 ;;  
60 Talk 히데님께 문의 해요! [2] file 라파에 11922   2008-09-21 2009-01-06 01:25
 
59 Talk 하루카 원문 [1] 나는누구인감? 10337   2008-09-16 2008-09-17 01:00
원문  
58 Talk DenyWord 변경한 내용입니다 Hide_D 9486   2008-09-11 2008-09-11 23:04
1. 일단 EXACT를 추가했습니다. 정보(옵션버튼), 플러그인초기화부분, DenyWord클래스의 초기화부분이 변경되었고 실제 처리부분에서는 먼저 처리를 해준 다음 if문 대신 루프의 n값을 0으로 고쳐 루프를 돌지 않도록 처리했습니다. 2. 1바이트인지 확인하는 ...  
» Talk [질문]UTF 코드를 SHIFT-JIS와 KS코드로 변환 [4] 호기심맨 13980   2008-09-02 2008-09-16 23:09
안녕하세요... 요즘 Aral이란 프로그램 덕에 갑자기 컴퓨터가 좋아진 사람입니다. 다시한번 모든 개발자분께 감사하구요.. 저도 아주아주 미약한 실력이지만 .. 참여해 보려고 합니다. (Aral에 도움될 실질적 가능성 0.0001%) 제가 관심가지는 부분은 단순님이...  
56 Talk 토모요 애프터...... [2] file whoami 10576   2008-08-26 2009-01-06 02:04
 
55 Talk FixLine 예상 작동 방식 [1] file Hide_D 10715   2008-08-23 2009-01-06 02:04
 
54 Talk 아... 괴물한자의 정체가 Hide_D 8458   2008-08-23 2009-01-06 01:05
일반적인 과정 후킹시에 MS949 -> Shift-JIS(괴물 한자) 아랄이 인식한 텍스트 출력 함수에서 Shift-JIS(괴물 한자) -> MS949 인데, 괴물세트(?) 후킹시에 MS949 -> Shift-JIS(괴물 한자) 아랄이 인식 하지 못한 텍스트 출력 함수에서 Shift-JIS(괴물 한자) ->...  
53 Talk 개행 처리 관련해서 일단 제 구상입니다 Hide_D 8149   2008-08-21 2009-01-06 01:05
랄까 어느새인가 개행처리가 아니라 텍스트 처리 필터가 되어있습니다만[......] (CmdFilter는 텍스트와 텍스트 바깥을 구분하고, 이건 텍스트 내부를 처리하는 느낌?) 우선 입력 받을 내용은 MaxLine MaxWord (MaxChar?) 개행 기호 문자열(또는 Hex) 그리고 ...  
52 Talk 루비문자 처리 스샷 입니다. file 라파에 8595   2008-08-17 2008-08-17 17:43
 
51 Talk 라파에님 다시 한번 테스트해보세요. [3] file Hide_D 10896   2008-08-17 2008-08-17 17:23
 
50 Talk 라파에님 한번 테스트해보세요. [2] file Hide_D 8759   2008-08-17 2008-08-17 16:55
 
49 Talk 빈공간[...] file Hide_D 11531   2008-08-16 2008-08-19 00:01
 
48 Talk 플러그인을 만들다가 '또다시' 엄청난 실수를 저질렀다는걸 깨달았습니다. [2] Hide_D 7929   2008-08-12 2009-01-06 01:01
이쪽은 프로그래밍이라보가는 구상과 관련된 문제네요 ㅠ_ㅠ 현재 제가 손대고 있는 플러그인이 사용자사전 사용자대본 개행문자처리 컨트롤문자처리 인데, 두개씩 묶여있는 구조죠. 그런데... 사용자대본 -> 문장단위처리 사용자사전 -> 단어단위처리 개행문...  
47 Talk Hide_D군님, CCustomDic2 의 문제점을 알 것 같습니다.. [1] whoami 7811   2008-08-12 2008-08-12 22:41
저번에 (5) 문제.. 기억하시나요? 아마도 이것 때문인 것 같습니다. void CCustomDic2::PreCustomDic(LPSTR Dest, LPCSTR Source) { // ... 전략 for(int head=0;head<SourceLen;head++) { for(int tail=SourceLen-1;tail>head;tail--) { // ... 중략 ... //2...  
46 Talk 옵션 스트링 버퍼 말이죠? [1] Hide_D 10830   2008-08-11 2008-08-11 23:22
ezTransXP단부터 확인을 해봤더니 ezTransXP도 LPSTR을 이용하는 군요 ㄱ- 옵션으로 파일명을 받으려고 했는데, 이거 참 난감하게 됬네요. c:ゲ?ムABCA_Route.txt 하면 못열테니까요. 아직 LPTSTR은 안줘봐서 모르겠지만 안된다면 충격이 좀 클듯;  
45 Talk 어휴.. [2] file whoami 8573   2008-08-11 2009-01-06 01:06