저는 초보라 왜 그런지 자세히 설명해 드릴 수 없습니다.단지 어디서 무얼 가져다가 어떻
게 했는지만 말씀드리겠습니다.환경은 알짜 5.2이고 커널은 2.0.36입니다.glibc-2.0.7-29이고요ne
tscape는 <a href="ftp://ftp.bora.net/pub/Linux/alzza/alzza-5.2/i386/devel/RPMS">netscape4.51</a>의 넷스케이프 4.5
1-2kr을 다운로드받아 설치했습니다.(물론 4.08도 되는 것을 확인했습니다.그리고 입력기는 h
anIM을 <a href="http://www.mizi.co.kr">www.mizi.co.kr</a>에서 폰트와함께 다운로드 받아 설치했습니다.
다음은 한글로케일을 가져와야 합니다.기본으로 깔려있는게 locale-ko-2.3이 깔려 있을겁니다
.궁금하시면 `rpm -q locale-ko`로 확인할 수 있습니다.여기서 -q는 버전을 그리고 -ql을 깔린 목
록을 알수 있는 옵션입니다.저는 이 로케일을 `rpm -e locale-ko`로 지우고저는 <a href=ftp://ftp.bor
a.net/pub/Linux/alzza/alzza-5.2/i386/devel/wcsmbs/RPMS/>wcsmbs-locale-0.4.11-4</a>를 설치하였습니다.물론 local
e-ko도 가능한지는 확인못했습니다. 초기에 안되는 가운데 이것저것 시도하면서 지운것이
니 되는 것을 확인한 사람은 아래에 쓰레드를달아 주십시요..다음에는 흔히 브로큰로케일
이라고들 말하는 걸 설치해야 합니다.그리고 xwcsmbs를 설치했습니다. 이것들은 박원규님의
xwcsmbs를 설치했습니다. 이것은 <a href=http://chem.skku.ac.kr/~wkpark/linux/xwcsmbs.html>박원규님의 홈
페이지의 관련페이지</a>에서 libxwcsmbsv0.4e즉 xwcsmbs-19990514.tar.gz를 다운받아 설치했습니다.
일단 압축을 풀고 소스디렉토리에 가서 make를 하시면 3가지 파일이 생성되는 데 그중에libBr
okenLocale.so를 /lib/에 복사하고 ln -s /lib/libBrokenLocale.so /lib/libBrokenLocale.so.1로 링크시켜둡니다.
그리고 libxwcsmbs.so.2라는 파일은 /usr/lib/netscape/에 복사합니다.아래의 것과 박원규님의 것과
겹치는 기능을 가졌을 수도 있지만 저는이것저것 해보다가 한글사용이 되는 상황에서의
조합만을 이야기하는 것이니 양해 바랍니다.mozillafix는 이글의 마지막에 있습니다. 소스가
포함되어서 글이 산만해질까봐 맨 아래로 내렸습니다.mozillafix까지 준비하면libBrokenLocale.so.
1 => /lib/libmozillaix.so => /usr/lib/netscape/libxwcsmbs.so.2 => /usr/lib/netscape/그리고 넷스케이프에 설치
되어 있던 /usr/lib/netscape/liblocale.so가 준비 되었죠이제 실행파일을 손보아야 합니다. 별다른
것은 없고모질라 실행시 위의 파일들을 preload시키기만 하면 됩니다.제 실행파일은 다음과
같습니다.---------cut here-----------------------------#!/bin/sh LD_PRELOAD=/lib/libBrokenLocale.so.1:/usr/lib/net
scape/liblocale.so:/usr/lib/netscape/libxwcsmbs.so.2:/usr/lib/netscape/libmozillafix.so export LD_PRELOADrk-------
--------------------------------------------------그리고 mozillafix를 컴파일 해야 합니다. 소j스는 적수
님이 뉴스그룹에 올린글에 포함되어 있지만 여기에 다시올립니다. 아래 부분을 잘라다가 w
cstombs.c 파일로 만들고 gcc -O2 -fPIC -shared -Wl,-soname,libmozillafix.so.0 -o libmozillafi
x.so wcstombs.c -lc로 컴파일하세요 그리고 역시 /usr/lib/netscape/에 복사해 두세요그러면 libBrokenL
ocale.so.1 => /lib/libmozillaix.so => /usr/lib/netscape/libxwcsmbs.so.2 => /usr/lib/netscape/그리고 넷스케이프
에 설치되어 있던 /usr/lib/netscape/liblocale.so가 준비 되었죠다음은 -------------cut here---------------
-----------------/* Copyright (C) 1999 Penguin Kun. This program is based on libwcsmbs-0.0.5/wcstombs.c and derived f
rom http://www.yasuda.comm.waseda.ac.jp/~nagahama/freebsd.html (which is written in Japanese). Compile: gcc -O2
-fPIC -shared -Wl,-soname,libmozillafix.so.0 -o libmozillafix.so wcstombs.c -lc Usage: env LD_
PRELOAD=./libmozillafix.so netscape *//* Copyright (C) 1991, 1992, 1995, 1996, 1997 Free Software Foundation, Inc. Th
is file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published by the Free Software Foundation; either versi
on 2 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it w
ill be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PAR
TICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of
the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to
the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */#include <stdlib.h>
#include <wchar.h>/* Convert the `wchar_t' string in PWCS to a multibyte character string in S, writing no more than
N characters. Return the number of bytes written, or (size_t) -1 if an invalid `wchar_t' was found. Attention: t
his function should NEVER be intentionally used. The interface is completely stupid. The state is shared between
all conversion functions. You should use instead the restartable version `wcsrtombs'. */size_twcstombs (char *s,
const wchar_t *pwcs, size_t n){ /* * The document file "libc.info-18" says at line 1109, * * "- Function:
size_t mbstowcs (wchar_t *WSTRING, const char *STRING, * size_t SIZE) * ....... * The conver
sion of characters from STRING begins in the initial * shift state." * * So, I think it must be given an i
nitialized mbstate_t * "initial_shift_state". */ mbstate_t initial_shift_state = {0, (wint_t)0}; /* * a t
emporary kluge for Netscape's (Motif's) BUG */ if (pwcs[0] & 0xffff0000) { int len; if (s != NULL) {
strncpy(s, (char *)pwcs, n); } len = strlen((char *)pwcs); return (len < n) ? len : n; } /* Retur
n how many we wrote (or maybe an error). */ return __wcsrtombs (s, &pwcs, n, &initial_shift_state);}-----> cut here
<----------------------------------------------------------