본문 바로가기

쓰기

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

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

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

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

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


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

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


분류 :
Talk
조회 수 :
13984
등록일 :
2008.09.02
14:40:55
엮인글 :
https://arallab.hided.net/3767/959/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
번호 제목 글쓴이 조회 수sort 추천 수 날짜 최근 수정일
공지 Talk [필독] 테스트필터 사용시 주의사항 라파에 155439   2008-08-03 2008-12-16 00:03
64 Talk 필터 3개 커밋 완료했습니다. [2] Hide_D 9263   2008-08-11 2009-01-06 01:06
HK2FK KoFilter TextDump whoami님이 안하셨길래 대신; RLCMD는 해도 괜찮을 것 같긴 한데, 이건 안하나요?  
63 Talk RLCmd, KoFilter 의 디버그 로그 기능에 대해.. whoami 9246   2008-07-26 2009-01-06 01:26
슬슬 RLCmd와 KoFilter 의 테스트버전 딱지를 떼어줘야겠는데요, 디버그 로그 기능을 뺄까 그냥 놔둘까 생각중입니다. 어떻게 하면 좋을까요? 1. 필요하므로 그냥 놔둔다. 2. 없애고 로그기능만 넣은 디버그용 로그 필터를 하나 새로 만든다.. (단 디버그용 로...  
62 Talk ATCode 버전업에 대해 - 관리자님 봐주세요.. [1] whoami 9241   2008-07-26 2008-07-27 02:35
오랫동안의 (.. 그리 오랫동안은 아닌 것 같은 기분도 들지만) ATCode 테스트 버전의 테스트로 SOW 모드가 어느정도 안정이 되었다고 생각됩니다. 그래서 기존 ATCode 에 융합해서 버전업을 하고 싶은데 어떻게 했으면 좋겠습니까? 그냥 SVN 내에서 커밋만 하...  
61 Talk Windows 7, UAC, 64bit Hide_D 9107   2011-04-24 2011-06-28 01:25
사실상 요새 구입하는 '최신형' 컴퓨터들이 갖는 세팅이 Windows 7 64bit에다가 UAC를 기본값으로 두고 사용하는 방식인데, 기존 아랄트랜스가 여기에 대응하지 못하는 부분이 많습니다. Windows 7 - 사실 이게 제일 속편합니다. 이거 자체로는 문제되는 부분...  
60 Talk whoami님 [3] Hide_D 9072   2008-07-18 2008-07-18 21:25
아래에 만든 플러그인이 에러가 납니다. 맨 처음에 만들었던 개발모드가 풀유니코드로 작성되어있고, 이녀석이 그냥 돌릴땐 잘 돌아가길래 그냥 Ctrl+C, Ctrl+V 해주고, 위 아래에 Ansi -> Unicode Unicode -> Ansi만 붙여넣은 거라 아무래도 변환부에 문제가 ...  
59 Talk 비주얼베이직에서의 Hash값 생성 코드 작업 file HaruKaze 9022   2009-01-05 2009-02-14 11:04
 
58 Talk http svn을 운용하는건 어떨까요? [3] 아랄 8950   2008-07-20 2009-01-06 01:35
몇몇 개발자 분들께서 열악한 버전관리 환경 속에서도 플러그인을 개발하시는데 조금이나마 도움이 되고싶네요 소스는 svn상으로 함께 공유하며 자발적으로 개선해 나갔으면 하는데요 현재 기존의 플러그인에서 분기되거나 또는 아랄트랜스 기본 기능에 넣고 ...  
57 Talk 전에 쓸모 있는 기능의 2번 관련 Hide_D 8860   2008-07-31 2009-01-06 01:00
whoami님이 생각하시는 것 처럼 정규식도 생각은 해봤는데, 이건 저로서는 무리고 =ㅅ=; 저거 비스무~리 하게 와일드 카드만 사용 할 수 있는 모델을 게획해 봤는데, '이걸 만들어야 할지 말아야 할지' Hide_D는 연습장에 적힌 내용을 소환했다. > 문장의 시작...  
56 Talk SOW 방식 지원 ATCode 플러그인 소스 커밋하였습니다.. [2] whoami 8829   2008-07-27 2008-07-27 21:12
빠진 파일은 없을겁니다; 버전 정보는 손대지 않았습니다. 버전 정보 업데이트 해주시고.. 혹시라도 문제가 있으면 알려주시기 바랍니다. (개인적으로는 아랄님 자주 보고 싶은데 덧글 하나 없이 대화방에도 없이 스리슬쩍 사라져 버리셔서 아쉽.. ㅡ.ㅡ)  
55 Talk 사용자 사전 플러그인에 대해서 설문 [5] Hide_D 8785   2008-07-30 2008-07-30 22:47
으음 기본적으로 모든 게임에 사용되는 사용자 사전 을 목표로 진행중이기 때문에 ezTransXPwithCustomDic이 아니라 ezTransXP가 되고 싶습니다만... 0.2에서는 특별한 다이얼로그가 없기 때문에 이걸 그냥 ezTransXP.dll로 만들어 달라기도 애매한 상황입니다...  
54 Talk 라파에님 한번 테스트해보세요. [2] file Hide_D 8759   2008-08-17 2008-08-17 16:55
 
53 Talk 맵을 이렇게 사용해도 되나요? [2] Hide_D 8705   2008-08-09 2008-08-09 22:13
void CCustomDic2::SetKey(LPCSTR JpnWord, LPCSTR KorWord) { map<UINT,struct DicWord> EmptyMap; struct DicWord TempWord; map<size_t,UINT>::iterator iterBook; TempWord.WordLen = strlen(KorWord); TempWord.WordN = WordN++; UINT Hash=MakeStringHas...  
52 Talk 루비문자 처리 스샷 입니다. file 라파에 8595   2008-08-17 2008-08-17 17:43
 
51 Talk 어휴.. [2] file whoami 8573   2008-08-11 2009-01-06 01:06
 
50 Talk 아... 괴물한자의 정체가 Hide_D 8458   2008-08-23 2009-01-06 01:05
일반적인 과정 후킹시에 MS949 -> Shift-JIS(괴물 한자) 아랄이 인식한 텍스트 출력 함수에서 Shift-JIS(괴물 한자) -> MS949 인데, 괴물세트(?) 후킹시에 MS949 -> Shift-JIS(괴물 한자) 아랄이 인식 하지 못한 텍스트 출력 함수에서 Shift-JIS(괴물 한자) ->...  
49 Talk 플러그인을 다시 Multi2용으로 만들면서 생긴 궁금증 [4] Hide_D 8374   2008-08-09 2009-01-06 01:26
MFC를 그대로 써야하는지라 API용의 기본틀을 쓸순 없어서 새로 만들었는데, extern "C" __declspec(dllexport) BOOL __stdcall OnPluginInit(HWND hSettingWnd, LPSTR cszSettingStringBuffer); extern "C" __declspec(dllexport) BOOL __stdcall OnPluginOpt...  
48 Talk 컨텍스트 구조 제안(핸들러 구조) [4] Hide_D 8336   2011-04-21 2011-04-23 20:17
가령 모듈 3가지가 DumpText, FixLine, EzTransXP 요렇게 있다고 가정할때 var c0_EzTransXP = new EzTransXP("NoSpace"); var c0_DumpText = new DumpText("KOut,KHex,KHex16"); var c0_FixLine = new FixLine("/ATData/c0.dat"); c0_DumpText.setNext(c0_EzT...  
47 Talk VS 2005로 갈아탔습니다 [1] Hide_D 8272   2008-08-03 2009-01-06 01:34
MFC, 리소스 에디터 때문에 도저히 못 버티다가 옮겼습니다. VS 2008 깔고는 그 느린 속도에 기겁했는데, 이쪽은 꽤 빠르네요. [우홋홋] 근데, 2005와 2008 차이가 뭐죠? 버전 옮길때 그냥 파일 열고 버전 숫자만 바꾸면 땡이네요[...]  
46 Talk 어? ezTransXP 플러그인을 분석하다 생각난건데 [1] Hide_D 8162   2008-07-22 2008-11-22 16:38
이 플러그인에서는 전각 기호는 다른 코드로 치환해 뒀다가 다시 전각 기호로 되돌려주는데, 반각기호는 처리법이 약~간 특이합니다. 1. 원문에 ()<>{}가 없고, 번역문에 ()<>{}가 있으면, ()<>{}와 그 안의 내용을 날립니다. 2. 원문에 ()<>{}가 있고, 번역문...  
45 Talk 개행 처리 관련해서 일단 제 구상입니다 Hide_D 8149   2008-08-21 2009-01-06 01:05
랄까 어느새인가 개행처리가 아니라 텍스트 처리 필터가 되어있습니다만[......] (CmdFilter는 텍스트와 텍스트 바깥을 구분하고, 이건 텍스트 내부를 처리하는 느낌?) 우선 입력 받을 내용은 MaxLine MaxWord (MaxChar?) 개행 기호 문자열(또는 Hex) 그리고 ...