OSDN Git Service

iconvに渡す文字コードをEUC-JP-MSに変更
authorHabu <habu@users.sourceforge.jp>
Sat, 8 Mar 2014 15:58:35 +0000 (00:58 +0900)
committerHabu <habu@users.sourceforge.jp>
Sat, 8 Mar 2014 16:32:29 +0000 (01:32 +0900)
iconvに渡す文字コードがEUC-JPでは「〜」は波ダッシュ(U+301C)を想定する
ため、全角チルダ(U+FF5E)を正常に処理できず文字化けを起こしてしまう。
(いわゆる波ダッシュ・全角チルダ問題)

全角チルダを正常に変換し表示できるようにするため、EUC-JP-MSを渡すよう
にした。

configure.ac
src/japanese.c

index 9a1dd65..d8f815c 100644 (file)
@@ -51,7 +51,7 @@ AC_ARG_ENABLE(chuukei,
 
 dnl -fno-strength-reduce prevents a bug in some versions of gcc
 if test "$GCC" = yes; then
-  CFLAGS="$CFLAGS -fno-strength-reduce --exec-charset=EUC-JP"
+  CFLAGS="$CFLAGS -fno-strength-reduce --exec-charset=EUC-JP-MS"
 fi
 
 dnl Checks for libraries.
index 01f2efa..932abf6 100644 (file)
@@ -412,7 +412,7 @@ static bool utf8_to_sys(char* utf8_str, char* sys_str_buffer, size_t sys_str_buf
 {
 #if defined(EUC)
 
-        iconv_t cd = iconv_open("EUC-JP", "UTF-8");
+        iconv_t cd = iconv_open("EUC-JP-MS", "UTF-8");
         size_t utf8_len = strlen(utf8_str) + 1; /* include termination character */
         char *from = utf8_str;
         int ret = iconv(cd, &from, &utf8_len, &sys_str_buffer, &sys_str_buflen);