반응형

OS: Ubuntu Desktop 14.04.2 LTS (amd64)

FreeRDP: 1.1.0-beta-2013071101


<NOTE> 

2016.08.24 현재 한영키 문제는 github에 있는 FreeRDP의 가장 최신 소스코드에서 해결되었다.

따라서 더이상 아래와 같이 굳이 베타 버전을 가져와서 직접 수정할 필요가 없게 되었다.

(다만 그 대신 최신 버전에서 전체화면 모드가 출력이 잘 안되는 듯한 버그가 있어 보이지만...)


* FreeRDP github 주소: https://github.com/FreeRDP/FreeRDP



FreeRDP는 현재 최신 버전(1.1.0-beta)에서도 한영키와 한자키가 작동하지 않는다.

한영키를 누르면 "Unknown key with X keycode 0x82", 

한자키를 누르면 "Unknown key with X keycode 0x83"

이러한 에러 메세지가 콘솔창에 표시된다.


FreeRDP의 최신 버전을 소스코드 컴파일을 통해서 설치했기 때문에 소스코드를 확인한 결과, 프로그램이 자체적으로 키보드 입력을 RDP keycode로 변환하는 과정에서 한영키와 한자키는 매핑된 키 정보가 없어서 키 입력이 누락되는 것이었다. 따라서 한영키와 한자키 입력에 대해서 올바른 RDP keycode 매핑이 있도록 연결만 해 주면 정상적으로 작동한다.

이를 위해 소스코드를 아래와 같이 고쳐 준다.


대상 파일: libfreerdp/locale/keyboard_xkbfile.c (line 51)

XKB_KEY_NAME_SCANCODE XKB_KEY_NAME_SCANCODE_TABLE[] =

{

{ "BKSP", RDP_SCANCODE_BACKSPACE},

{ "TAB", RDP_SCANCODE_TAB},

{ "RTRN", RDP_SCANCODE_RETURN}, // not KP

{ "LFSH", RDP_SCANCODE_LSHIFT},

...


위와 같이 51라인 쯤에 있는 XKB_KEY_NAME_SCANCODE_TABLE 배열에 아래 두 항목을 추가한다.

{ "HNGL", RDP_SCANCODE_KANA_HANGUL},

{ "HJCV", RDP_SCANCODE_HANJA_KANJI}


keyboard_xkbfile.c 소스코드 파일:

keyboard_xkbfile.c



혹시 freerdp (xfreerdp)가 실행중이면 종료한 다음, 소스코드 최상위 폴더로 가서 아래와 같이 새로 빌드하고 설치한다.

$ make

$ sudo make install


(참고) FreeRDP 소스코드에서 설치하는 방법: http://skylit.tistory.com/158


다시 freerdp (xfreerdp)를 실행하면 한영키, 한자키가 작동할 것이다.

$ xfreerdp /u:사용자계정 /v:원격컴퓨터주소:포트번호




반응형
블로그 이미지

Bryan_

,
반응형

OS: Ubuntu 12.04 LTS (64-bit)

Kernel: 3.5.0-54-generic

Wine version: 1.4

한컴오피스 한글 버전: 한글 2010


와인(wine)을 이용해서 한컴오피스 한글 워드프로세서(Hwp)를 실행할 수 있으나, 이미지가 들어가 있는 페이지에 접근하면 아래와 같은 오류를 내면서 강제 종료되는 문제가 있다.

Unhandled exception: unimplemented function gdiplus.dll.GdipEnumerateMetafileSrcRectDestRectI called in 32-bit code (0x7b839cf2).

Register dump:

 CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b

 EIP:7b839cf2 ESP:0033db1c EBP:0033db80 EFLAGS:00000287(   - --  I S - -P-C)

 EAX:7b826245 EBX:7b894ff4 ECX:7d099549 EDX:0033db44

 ESI:80000100 EDI:0033e28c

Stack dump:

0x0033db1c:  0033dba0 00000008 7d050000 80000100


... (이하 생략)


즉 gdiplus 라이브러리가 필요한데, 기존에 알려진 방법(https://kldp.org/node/136898)을 따라해도 오히려 한글 2010 실행이 안되고 "Could not load GdiPlus.dll" 이라는 오류 메세지가 뜨는 것이었다.


다른 방법이 없을지 찾아보던 중에 アリア님의 블로그에서 Linux Mint 17에서 Wine으로 카카오톡, 한글 2010 설치하기(http://jetzt.tistory.com/810) 포스팅에서 도움을 받아서, 간단하게 해결할 수 있었다. 이 분의 블로그를 확인하기 전까지는 winetricks의 존재도 모르고 있었는데 감사한 일이다.


아래와 같이 명령을 치면 알아서 라이브러리를 직접 다운로드 받아서 설치한다.

$ winetricks gdiplus


アリア님에 의하면 한글 2010에서 닷넷2.0 라이브러리도 필요한 것 같은데, 아직까지는 gdiplus 라이브러리 문제만 해결한 채 계속 사용하고 있다. 사용하다가 또 오류가 나서 필요한 경우 추가해야 할 것 같다.



반응형
블로그 이미지

Bryan_

,
반응형
일반적으로 JSP파일에서 한글을 직접 입력하고 싶을 때, 파일의 맨 위에
<%@ page contentType="text/html; charset=euc-kr" %> 이렇게만 써주면 한글이 문제없이 보이지만, Java에서 넘어오는 문자열이나 웹 주소를 통해 받는 파라미터는 모두 유니코드(UTF-8)이기 때문에 되도록이면 UTF-8로 통일해서 쓰는 것이 여러 모로 변환의 귀찮음도 줄일 겸 좋을 것 같다.


(1) 아파치 톰캣에서 설정할 부분:
<Connector port="8080" .../> 태그의 뒷부분에
useBodyEncodingForURI="true" URIEncoding="UTF-8"를 추가한다.
(예) <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" useBodyEncodingForURI="true" URIEncoding="UTF-8" />

<Connector port="8009" ... /> 태그의 뒷부분에도 똑같이 추가해 준다.
(예) <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" useBodyEncodingForURI="true" URIEncoding="UTF-8"/>


(2) JSP 파일에서 설정할 부분:
JSP파일의 시작 부분에 다음 줄을 추가한다. 또는 charset이 euc-kr로 되어 있을 경우 바꿔 준다.
<%@ page contentType="text/html; charset=UTF-8" %>


HTML 코드가 시작될 만한 곳 어딘가에 (위치가 큰 상관은 없어 보임) 아래 메타태그를 추가해 준다.
<META http-equiv="Content-Type" content="text/html; charset=UTF-8"/>


(3) JSP 파일 자체의 포맷 확인:
사용하는 에디터에 따라서 텍스트파일의 저장방식이 다를 수 있다.
현재 버전(0.9)의 AcroEdit의 경우 사용자가 직접 유니코드로 변환 명령을 주지 않으면 유니코드로 저장하지 않는다.
파일을 저장할 때 반드시 유니코드(UTF-8)로 저장할 것.
반응형
블로그 이미지

Bryan_

,