ผมไม่ได้ ติดตามพัฒนาเรื่องนี้ นานแล้ว
เก็บไว้นานมาก (ตั้งแต่ 2006-09-14) .. แต่ไม่ได้ เอาออกมาเปิดให้ดู เพราะ เพราะเป็น Code ที่เขียนทดสอบดุเฉยๆ
แต่ เห็นว่า ถามถึง
CODE
# diff -uN estring.cpp_old estring.cpp
--- estring.cpp_old 2006-09-10 22:10:38.000000000 +0700
+++ estring.cpp 2006-09-14 08:25:13.000000000 +0700
@@ -516,7 +516,44 @@
(code=doVideoTexSuppl(data[i], data[i+1])) )
i+=2;
if (!code)
- code=recode(data[i++], table);
+ if (table==11) {
+ if (i>0) {
+ if (data[i-1]==0xD1 || (data[i-1]>=0xD4 && data[i-1]<=0xD7)) {
+ code=recode(data[i++], table);
+ } else {
+ switch (data[i]) {
+ case 0xE8:
+ code=0xF70A;
+ i++;
+ break;
+ case 0xE9:
+ code=0xF70B;
+ i++;
+ break;
+ case 0xEA:
+ code=0xF70C;
+ i++;
+ break;
+ case 0xEB:
+ code=0xF70D;
+ i++;
+ break;
+ case 0xEC:
+ code=0xF70E;
+ i++;
+ break;
+ default:
+ code=recode(data[i++], table);
+ break;
+
+ }
+ }
+ } else {
+ code=recode(data[i++], table);
+ }
+ } else {
+ code=recode(data[i++], table);
+ }
if (!code)
continue;
// Unicode->UTF8 encoding
หมายเหตุ: ไม่แน่ใจว่าเอามาถูกไฟล์หรือเปล่า เพราะ นานมากๆๆ แล้วอันนี้ผมน่าจะเขียนใช้กับ 8859-11 อย่างเดียว