[ttssh2-commit] [10800] 不正なUTF-8を受信したとき出力する文字コードを U+FFFD に変更した

Back to archive index
scmno****@osdn***** scmno****@osdn*****
2023年 7月 8日 (土) 01:09:55 JST


Revision: 10800
          https://osdn.net/projects/ttssh2/scm/svn/commits/10800
Author:   zmatsuo
Date:     2023-07-08 01:09:54 +0900 (Sat, 08 Jul 2023)
Log Message:
-----------
不正なUTF-8を受信したとき出力する文字コードを U+FFFD に変更した

- U+FFFD REPLACEMENT CHARACTER
  - 変更前は "?" だった

ticket #48226

Ticket Links:
------------
    https://osdn.net/projects/ttssh2/tracker/detail/48226

Modified Paths:
--------------
    trunk/teraterm/teraterm/charset.cpp

-------------- next part --------------
Modified: trunk/teraterm/teraterm/charset.cpp
===================================================================
--- trunk/teraterm/teraterm/charset.cpp	2023-07-06 14:45:17 UTC (rev 10799)
+++ trunk/teraterm/teraterm/charset.cpp	2023-07-07 16:09:54 UTC (rev 10800)
@@ -47,10 +47,8 @@
 #include "charset.h"
 
 // UTF-8\x82\xAA\x95s\x90\xB3\x82Ȓl\x82\xBE\x82\xC1\x82\xBD\x8E\x9E\x82ɕ\\x8E\xA6\x82\xB7\x82镶\x8E\x9A
-#define REPLACEMENT_CHARACTER	'?'
-//#define REPLACEMENT_CHARACTER	0x2592
-//#define REPLACEMENT_CHARACTER	0x20
-//#define REPLACEMENT_CHARACTER	0xfffd
+#define REPLACEMENT_CHARACTER	0xfffd		// REPLACEMENT CHARACTER
+//#define REPLACEMENT_CHARACTER	0x2e2e		// Reversed Question Mark (VT382)
 
 typedef struct CharSetDataTag {
 	/* GL, GR code group */
@@ -329,7 +327,7 @@
 			}
 			break;
 		case IdUTF8:
-			w->Op.PutU32(REPLACEMENT_CHARACTER, w->ClientData);
+			w->Op.PutU32(w->replacement_char, w->ClientData);
 			break;
 		default:
 			w->Op.ParseControl(b, w->ClientData);
@@ -344,7 +342,7 @@
 			}
 			break;
 		case IdUTF8:
-			w->Op.PutU32(REPLACEMENT_CHARACTER, w->ClientData);
+			w->Op.PutU32(w->replacement_char, w->ClientData);
 			break;
 		default:
 			w->Op.ParseControl(b, w->ClientData);
@@ -538,7 +536,7 @@
 	} else if ((b>=0x20) && (b<=0x7E)) {
 		w->Op.PutU32(b, w->ClientData);
 	} else if ((b==0x8E) || (b==0x8F)) {
-		w->Op.PutU32(REPLACEMENT_CHARACTER, w->ClientData);
+		w->Op.PutU32(w->replacement_char, w->ClientData);
 	} else if ((b>=0x80) && (b<=0x9F)) {
 		w->Op.ParseControl(b, w->ClientData);
 	} else if (b>=0xA0) {


ttssh2-commit メーリングリストの案内
Back to archive index