cInfo->KanjiFst = 0;\r
cInfo->KanaPrev = 0;\r
cInfo->KanaProc = NULL;\r
+ // UTF-8\91Î\89\9e\r
+ cInfo->EscUTF8Len = 0;\r
return;\r
}\r
\r
*Put++ = cInfo->EscCode[0];\r
if(cInfo->EscProc == 2)\r
*Put++ = cInfo->EscCode[1];\r
+ // UTF-8\91Î\89\9e\r
+ memcpy(Put, cInfo->EscUTF8, sizeof(char) * cInfo->EscUTF8Len);\r
+ Put += cInfo->EscUTF8Len;\r
\r
cInfo->OutLen = Put - cInfo->Buf;\r
\r
{\r
int Continue;\r
\r
- char temp_string[2048];\r
+// char temp_string[2048];\r
int string_length;\r
\r
+ // \91å\82«\82¢\83T\83C\83Y\82É\91Î\89\9e\r
+ // \8fI\92[\82ÌNULL\82ð\8aÜ\82Þ\83o\83O\82ð\8fC\90³\r
+ int SrcLength;\r
+ char* pSrc;\r
+ wchar_t* pUTF16;\r
+ int UTF16Length;\r
+ int Count;\r
+\r
Continue = NO;\r
\r
// \90¶\90¬\82³\82ê\82é\92\86\8aÔ\83R\81[\83h\82Ì\83T\83C\83Y\82ð\92²\82×\82é\r
- string_length = MultiByteToWideChar(\r
- CP_UTF8, // \95Ï\8a·\90æ\95¶\8e\9a\83R\81[\83h\r
- 0, // \83t\83\89\83O(0:\82È\82µ)\r
- cInfo->Str, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\r
- -1, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\83o\83C\83g\90\94(-1:\8e©\93®)\r
- NULL, // \95Ï\8a·\82µ\82½\95¶\8e\9a\97ñ\82Ì\8ai\94[\90æ\r
- 0 // \8ai\94[\90æ\83T\83C\83Y\r
- );\r
+// string_length = MultiByteToWideChar(\r
+// CP_UTF8, // \95Ï\8a·\90æ\95¶\8e\9a\83R\81[\83h\r
+// 0, // \83t\83\89\83O(0:\82È\82µ)\r
+// cInfo->Str, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\r
+// -1, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\83o\83C\83g\90\94(-1:\8e©\93®)\r
+// NULL, // \95Ï\8a·\82µ\82½\95¶\8e\9a\97ñ\82Ì\8ai\94[\90æ\r
+// 0 // \8ai\94[\90æ\83T\83C\83Y\r
+// );\r
+ // \91O\89ñ\82Ì\95Ï\8a·\95s\94\\82È\8ec\82è\82Ì\95¶\8e\9a\97ñ\82ð\93ü\97Í\82Ì\90æ\93ª\82É\8c\8b\8d\87\r
+ SrcLength = cInfo->StrLen + cInfo->EscUTF8Len;\r
+ if(!(pSrc = (char*)malloc(sizeof(char) * (SrcLength + 1))))\r
+ {\r
+ *(cInfo->Buf) = '\0';\r
+ cInfo->BufSize = 0;\r
+ return Continue;\r
+ }\r
+ memcpy(pSrc, cInfo->EscUTF8, sizeof(char) * cInfo->EscUTF8Len);\r
+ memcpy(pSrc + cInfo->EscUTF8Len, cInfo->Str, sizeof(char) * cInfo->StrLen);\r
+ *(pSrc + SrcLength) = '\0';\r
+ // UTF-8\82Ì\8fê\8d\87\81A\95s\8a®\91S\82È\95¶\8e\9a\82Í\8fí\82É\95Ï\8a·\82³\82ê\82È\82¢\r
+ UTF16Length = MultiByteToWideChar(CP_UTF8, 0, pSrc, SrcLength, NULL, 0);\r
\r
// \83T\83C\83Y0 or \83o\83b\83t\83@\83T\83C\83Y\82æ\82è\91å\82«\82¢\8fê\8d\87\82Í\r
// cInfo->Buf\82Ì\8dÅ\8f\89\82É'\0'\82ð\93ü\82ê\82Ä\81A\r
// cInfo->BufSize\82É0\82ð\93ü\82ê\82Ä\95Ô\82·\81B\r
- if( string_length == 0 ||\r
- string_length >= 1024 ){\r
+// if( string_length == 0 ||\r
+// string_length >= 1024 ){\r
+// *(cInfo->Buf) = '\0';\r
+// cInfo->BufSize = 0;\r
+// return(Continue);\r
+// }\r
+ if(!(pUTF16 = (wchar_t*)malloc(sizeof(wchar_t) * UTF16Length)))\r
+ {\r
+ free(pSrc);\r
*(cInfo->Buf) = '\0';\r
cInfo->BufSize = 0;\r
- return(Continue);\r
+ return Continue;\r
}\r
\r
// \92\86\8aÔ\83R\81[\83h(unicode)\82É\95Ï\8a·\r
- MultiByteToWideChar(\r
- CP_UTF8, // \95Ï\8a·\90æ\95¶\8e\9a\83R\81[\83h\r
- 0, // \83t\83\89\83O(0:\82È\82µ)\r
- cInfo->Str, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\r
- -1, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\83o\83C\83g\90\94(-1:\8e©\93®)\r
- (unsigned short *)temp_string, // \95Ï\8a·\82µ\82½\95¶\8e\9a\97ñ\82Ì\8ai\94[\90æ\r
- 1024 // \8ai\94[\90æ\83T\83C\83Y\r
- );\r
+// MultiByteToWideChar(\r
+// CP_UTF8, // \95Ï\8a·\90æ\95¶\8e\9a\83R\81[\83h\r
+// 0, // \83t\83\89\83O(0:\82È\82µ)\r
+// cInfo->Str, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\r
+// -1, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\83o\83C\83g\90\94(-1:\8e©\93®)\r
+// (unsigned short *)temp_string, // \95Ï\8a·\82µ\82½\95¶\8e\9a\97ñ\82Ì\8ai\94[\90æ\r
+// 1024 // \8ai\94[\90æ\83T\83C\83Y\r
+// );\r
+ MultiByteToWideChar(CP_UTF8, 0, pSrc, SrcLength, pUTF16, UTF16Length);\r
\r
// \90¶\90¬\82³\82ê\82éUTF-8\83R\81[\83h\82Ì\83T\83C\83Y\82ð\92²\82×\82é\r
- string_length = WideCharToMultiByte(\r
- CP_ACP, // \95Ï\8a·\90æ\95¶\8e\9a\83R\81[\83h\r
- 0, // \83t\83\89\83O(0:\82È\82µ)\r
- (unsigned short *)temp_string, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\r
- -1, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\83o\83C\83g\90\94(-1:\8e©\93®)\r
- NULL, // \95Ï\8a·\82µ\82½\95¶\8e\9a\97ñ\82Ì\8ai\94[\90æ\r
- 0, // \8ai\94[\90æ\83T\83C\83Y\r
- NULL,NULL\r
- );\r
+// string_length = WideCharToMultiByte(\r
+// CP_ACP, // \95Ï\8a·\90æ\95¶\8e\9a\83R\81[\83h\r
+// 0, // \83t\83\89\83O(0:\82È\82µ)\r
+// (unsigned short *)temp_string, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\r
+// -1, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\83o\83C\83g\90\94(-1:\8e©\93®)\r
+// NULL, // \95Ï\8a·\82µ\82½\95¶\8e\9a\97ñ\82Ì\8ai\94[\90æ\r
+// 0, // \8ai\94[\90æ\83T\83C\83Y\r
+// NULL,NULL\r
+// );\r
+ string_length = WideCharToMultiByte(CP_ACP, 0, pUTF16, UTF16Length, NULL, 0, NULL, NULL);\r
\r
// \83T\83C\83Y0 or \8fo\97Í\83o\83b\83t\83@\83T\83C\83Y\82æ\82è\91å\82«\82¢\8fê\8d\87\82Í\81A\r
// cInfo->Buf\82Ì\8dÅ\8f\89\82É'\0'\82ð\93ü\82ê\82Ä\81A\r
// cInfo->BufSize\82É0\82ð\93ü\82ê\82Ä\95Ô\82·\81B\r
- if( string_length == 0 ||\r
- string_length >= cInfo->BufSize ){\r
- *(cInfo->Buf) = '\0';\r
- cInfo->BufSize = 0;\r
- return(Continue);\r
- }\r
+// if( string_length == 0 ||\r
+// string_length >= cInfo->BufSize ){\r
+// *(cInfo->Buf) = '\0';\r
+// cInfo->BufSize = 0;\r
+// return(Continue);\r
+// }\r
\r
// \8fo\97Í\83T\83C\83Y\82ð\90Ý\92è\r
- cInfo->OutLen = string_length;\r
+// cInfo->OutLen = string_length;\r
\r
// UTF-8\83R\81[\83h\82É\95Ï\8a·\r
- WideCharToMultiByte(\r
- CP_ACP, // \95Ï\8a·\90æ\95¶\8e\9a\83R\81[\83h\r
- 0, // \83t\83\89\83O(0:\82È\82µ)\r
- (unsigned short *)temp_string, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\r
- -1, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\83o\83C\83g\90\94(-1:\8e©\93®)\r
- cInfo->Buf, // \95Ï\8a·\82µ\82½\95¶\8e\9a\97ñ\82Ì\8ai\94[\90æ(BOM:3bytes)\r
- cInfo->BufSize, // \8ai\94[\90æ\83T\83C\83Y\r
- NULL,NULL\r
- );\r
+// WideCharToMultiByte(\r
+// CP_ACP, // \95Ï\8a·\90æ\95¶\8e\9a\83R\81[\83h\r
+// 0, // \83t\83\89\83O(0:\82È\82µ)\r
+// (unsigned short *)temp_string, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\r
+// -1, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\83o\83C\83g\90\94(-1:\8e©\93®)\r
+// cInfo->Buf, // \95Ï\8a·\82µ\82½\95¶\8e\9a\97ñ\82Ì\8ai\94[\90æ(BOM:3bytes)\r
+// cInfo->BufSize, // \8ai\94[\90æ\83T\83C\83Y\r
+// NULL,NULL\r
+// );\r
+ cInfo->OutLen = WideCharToMultiByte(CP_ACP, 0, pUTF16, UTF16Length, cInfo->Buf, cInfo->BufSize, NULL, NULL);\r
+ // \83o\83b\83t\83@\82É\8eû\82Ü\82ç\82È\82¢\82½\82ß\95Ï\8a·\95¶\8e\9a\90\94\82ð\94¼\8c¸\r
+ while(cInfo->OutLen == 0 && UTF16Length > 0)\r
+ {\r
+ UTF16Length = UTF16Length / 2;\r
+ cInfo->OutLen = WideCharToMultiByte(CP_ACP, 0, pUTF16, UTF16Length, cInfo->Buf, cInfo->BufSize, NULL, NULL);\r
+ }\r
+ // \95Ï\8a·\82³\82ê\82½\8c³\82Ì\95¶\8e\9a\97ñ\82Å\82Ì\95¶\8e\9a\90\94\82ð\8eæ\93¾\r
+ Count = WideCharToMultiByte(CP_UTF8, 0, pUTF16, UTF16Length, NULL, 0, NULL, NULL);\r
+ // \95Ï\8a·\89Â\94\\82È\8ec\82è\82Ì\95¶\8e\9a\90\94\82ð\8eæ\93¾\r
+ UTF16Length = MultiByteToWideChar(CP_UTF8, 0, pSrc + Count, SrcLength - Count, NULL, 0);\r
+ cInfo->Str += Count - cInfo->EscUTF8Len;\r
+ cInfo->StrLen -= Count - cInfo->EscUTF8Len;\r
+ cInfo->EscUTF8Len = 0;\r
+ if(UTF16Length > 0)\r
+ Continue = YES;\r
+ else\r
+ {\r
+ // \95Ï\8a·\95s\94\\82È\82½\82ß\8e\9f\82Ì\93ü\97Í\82Ì\90æ\93ª\82É\8c\8b\8d\87\r
+ memcpy(cInfo->EscUTF8, cInfo->Str, sizeof(char) * cInfo->StrLen);\r
+ cInfo->EscUTF8Len = cInfo->StrLen;\r
+ cInfo->Str += cInfo->StrLen;\r
+ cInfo->StrLen = 0;\r
+ Continue = NO;\r
+ }\r
+\r
+ free(pSrc);\r
+ free(pUTF16);\r
\r
return(Continue);\r
}\r
{\r
int Continue;\r
\r
- char temp_string[2048];\r
+// char temp_string[2048];\r
int string_length;\r
\r
+ // \91å\82«\82¢\83T\83C\83Y\82É\91Î\89\9e\r
+ // \8fI\92[\82ÌNULL\82ð\8aÜ\82Þ\83o\83O\82ð\8fC\90³\r
+ int SrcLength;\r
+ char* pSrc;\r
+ wchar_t* pUTF16;\r
+ int UTF16Length;\r
+ int Count;\r
+\r
Continue = NO;\r
\r
// \90¶\90¬\82³\82ê\82é\92\86\8aÔ\83R\81[\83h\82Ì\83T\83C\83Y\82ð\92²\82×\82é\r
- string_length = MultiByteToWideChar(\r
- CP_ACP, // \95Ï\8a·\90æ\95¶\8e\9a\83R\81[\83h\r
- 0, // \83t\83\89\83O(0:\82È\82µ)\r
- cInfo->Str, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\r
- -1, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\83o\83C\83g\90\94(-1:\8e©\93®)\r
- NULL, // \95Ï\8a·\82µ\82½\95¶\8e\9a\97ñ\82Ì\8ai\94[\90æ\r
- 0 // \8ai\94[\90æ\83T\83C\83Y\r
- );\r
+// string_length = MultiByteToWideChar(\r
+// CP_ACP, // \95Ï\8a·\90æ\95¶\8e\9a\83R\81[\83h\r
+// 0, // \83t\83\89\83O(0:\82È\82µ)\r
+// cInfo->Str, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\r
+// -1, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\83o\83C\83g\90\94(-1:\8e©\93®)\r
+// NULL, // \95Ï\8a·\82µ\82½\95¶\8e\9a\97ñ\82Ì\8ai\94[\90æ\r
+// 0 // \8ai\94[\90æ\83T\83C\83Y\r
+// );\r
+ // \91O\89ñ\82Ì\95Ï\8a·\95s\94\\82È\8ec\82è\82Ì\95¶\8e\9a\97ñ\82ð\93ü\97Í\82Ì\90æ\93ª\82É\8c\8b\8d\87\r
+ SrcLength = cInfo->StrLen + cInfo->EscUTF8Len;\r
+ if(!(pSrc = (char*)malloc(sizeof(char) * (SrcLength + 1))))\r
+ {\r
+ *(cInfo->Buf) = '\0';\r
+ cInfo->BufSize = 0;\r
+ return Continue;\r
+ }\r
+ memcpy(pSrc, cInfo->EscUTF8, sizeof(char) * cInfo->EscUTF8Len);\r
+ memcpy(pSrc + cInfo->EscUTF8Len, cInfo->Str, sizeof(char) * cInfo->StrLen);\r
+ *(pSrc + SrcLength) = '\0';\r
+ // Shift_JIS\82Ì\8fê\8d\87\81A\95s\8a®\91S\82È\95¶\8e\9a\82Å\82à\95Ï\8a·\82³\82ê\82é\82±\82Æ\82ª\82 \82é\82½\82ß\81A\96\96\94ö\82Ì\95s\8a®\91S\82È\95\94\95ª\82ð\8dí\82é\r
+ Count = 0;\r
+ while(Count < SrcLength)\r
+ {\r
+ if(((unsigned char)*(pSrc + Count) >= 0x81 && (unsigned char)*(pSrc + Count) <= 0x9f) || (unsigned char)*(pSrc + Count) >= 0xe0)\r
+ {\r
+ if((unsigned char)*(pSrc + Count + 1) >= 0x40)\r
+ Count += 2;\r
+ else\r
+ {\r
+ if(Count + 2 > SrcLength)\r
+ break;\r
+ Count += 1;\r
+ }\r
+ }\r
+ else\r
+ Count += 1;\r
+ }\r
+ SrcLength = Count;\r
+ UTF16Length = MultiByteToWideChar(CP_ACP, 0, pSrc, SrcLength, NULL, 0);\r
\r
// \83T\83C\83Y0 or \83o\83b\83t\83@\83T\83C\83Y\82æ\82è\91å\82«\82¢\8fê\8d\87\82Í\81A\r
// cInfo->Buf\82Ì\8dÅ\8f\89\82É'\0'\82ð\93ü\82ê\82Ä\81A\r
// cInfo->BufSize\82É0\82ð\93ü\82ê\82Ä\95Ô\82·\81B\r
- if( string_length == 0 ||\r
- string_length >= 1024 ){\r
+// if( string_length == 0 ||\r
+// string_length >= 1024 ){\r
+// *(cInfo->Buf) = '\0';\r
+// cInfo->BufSize = 0;\r
+// return(Continue);\r
+// }\r
+ if(!(pUTF16 = (wchar_t*)malloc(sizeof(wchar_t) * UTF16Length)))\r
+ {\r
+ free(pSrc);\r
*(cInfo->Buf) = '\0';\r
cInfo->BufSize = 0;\r
- return(Continue);\r
+ return Continue;\r
}\r
\r
// \92\86\8aÔ\83R\81[\83h(unicode)\82É\95Ï\8a·\r
- MultiByteToWideChar(\r
- CP_ACP, // \95Ï\8a·\90æ\95¶\8e\9a\83R\81[\83h\r
- 0, // \83t\83\89\83O(0:\82È\82µ)\r
- cInfo->Str, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\r
- -1, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\83o\83C\83g\90\94(-1:\8e©\93®)\r
- (unsigned short *)temp_string, // \95Ï\8a·\82µ\82½\95¶\8e\9a\97ñ\82Ì\8ai\94[\90æ\r
- 1024 // \8ai\94[\90æ\83T\83C\83Y\r
- );\r
+// MultiByteToWideChar(\r
+// CP_ACP, // \95Ï\8a·\90æ\95¶\8e\9a\83R\81[\83h\r
+// 0, // \83t\83\89\83O(0:\82È\82µ)\r
+// cInfo->Str, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\r
+// -1, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\83o\83C\83g\90\94(-1:\8e©\93®)\r
+// (unsigned short *)temp_string, // \95Ï\8a·\82µ\82½\95¶\8e\9a\97ñ\82Ì\8ai\94[\90æ\r
+// 1024 // \8ai\94[\90æ\83T\83C\83Y\r
+// );\r
+ MultiByteToWideChar(CP_ACP, 0, pSrc, SrcLength, pUTF16, UTF16Length);\r
\r
// \90¶\90¬\82³\82ê\82éUTF-8\83R\81[\83h\82Ì\83T\83C\83Y\82ð\92²\82×\82é\r
- string_length = WideCharToMultiByte(\r
- CP_UTF8, // \95Ï\8a·\90æ\95¶\8e\9a\83R\81[\83h\r
- 0, // \83t\83\89\83O(0:\82È\82µ)\r
- (unsigned short *)temp_string, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\r
- -1, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\83o\83C\83g\90\94(-1:\8e©\93®)\r
- NULL, // \95Ï\8a·\82µ\82½\95¶\8e\9a\97ñ\82Ì\8ai\94[\90æ\r
- 0, // \8ai\94[\90æ\83T\83C\83Y\r
- NULL,NULL\r
- );\r
+// string_length = WideCharToMultiByte(\r
+// CP_UTF8, // \95Ï\8a·\90æ\95¶\8e\9a\83R\81[\83h\r
+// 0, // \83t\83\89\83O(0:\82È\82µ)\r
+// (unsigned short *)temp_string, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\r
+// -1, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\83o\83C\83g\90\94(-1:\8e©\93®)\r
+// NULL, // \95Ï\8a·\82µ\82½\95¶\8e\9a\97ñ\82Ì\8ai\94[\90æ\r
+// 0, // \8ai\94[\90æ\83T\83C\83Y\r
+// NULL,NULL\r
+// );\r
+ string_length = WideCharToMultiByte(CP_UTF8, 0, pUTF16, UTF16Length, NULL, 0, NULL, NULL);\r
\r
// \83T\83C\83Y0 or \8fo\97Í\83o\83b\83t\83@\83T\83C\83Y\82æ\82è\91å\82«\82¢\8fê\8d\87\82Í\81A\r
// cInfo->Buf\82Ì\8dÅ\8f\89\82É'\0'\82ð\93ü\82ê\82Ä\81A\r
// cInfo->BufSize\82É0\82ð\93ü\82ê\82Ä\95Ô\82·\81B\r
- if( string_length == 0 ||\r
- string_length >= cInfo->BufSize ){\r
- *(cInfo->Buf) = '\0';\r
- cInfo->BufSize = 0;\r
- return(Continue);\r
- }\r
+// if( string_length == 0 ||\r
+// string_length >= cInfo->BufSize ){\r
+// *(cInfo->Buf) = '\0';\r
+// cInfo->BufSize = 0;\r
+// return(Continue);\r
+// }\r
\r
// \8fo\97Í\83T\83C\83Y\82ð\90Ý\92è\r
- cInfo->OutLen = string_length;\r
+// cInfo->OutLen = string_length;\r
\r
/*\r
// \81«\95t\82¯\82¿\82á\82¾\82ß \83R\83}\83\93\83h\82É\82à\92Ç\89Á\82³\82ê\82Ä\82µ\82Ü\82¤\r
*/\r
\r
// UTF-8\83R\81[\83h\82É\95Ï\8a·\r
- WideCharToMultiByte(\r
- CP_UTF8, // \95Ï\8a·\90æ\95¶\8e\9a\83R\81[\83h\r
- 0, // \83t\83\89\83O(0:\82È\82µ)\r
- (unsigned short *)temp_string, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\r
- -1, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\83o\83C\83g\90\94(-1:\8e©\93®)\r
- cInfo->Buf, // \95Ï\8a·\82µ\82½\95¶\8e\9a\97ñ\82Ì\8ai\94[\90æ(BOM:3bytes)\r
- cInfo->BufSize, // \8ai\94[\90æ\83T\83C\83Y\r
- NULL,NULL\r
- );\r
+// WideCharToMultiByte(\r
+// CP_UTF8, // \95Ï\8a·\90æ\95¶\8e\9a\83R\81[\83h\r
+// 0, // \83t\83\89\83O(0:\82È\82µ)\r
+// (unsigned short *)temp_string, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\r
+// -1, // \95Ï\8a·\8c³\95¶\8e\9a\97ñ\83o\83C\83g\90\94(-1:\8e©\93®)\r
+// cInfo->Buf, // \95Ï\8a·\82µ\82½\95¶\8e\9a\97ñ\82Ì\8ai\94[\90æ(BOM:3bytes)\r
+// cInfo->BufSize, // \8ai\94[\90æ\83T\83C\83Y\r
+// NULL,NULL\r
+// );\r
+ cInfo->OutLen = WideCharToMultiByte(CP_UTF8, 0, pUTF16, UTF16Length, cInfo->Buf, cInfo->BufSize, NULL, NULL);\r
+ // \83o\83b\83t\83@\82É\8eû\82Ü\82ç\82È\82¢\82½\82ß\95Ï\8a·\95¶\8e\9a\90\94\82ð\94¼\8c¸\r
+ while(cInfo->OutLen == 0 && UTF16Length > 0)\r
+ {\r
+ UTF16Length = UTF16Length / 2;\r
+ cInfo->OutLen = WideCharToMultiByte(CP_UTF8, 0, pUTF16, UTF16Length, cInfo->Buf, cInfo->BufSize, NULL, NULL);\r
+ }\r
+ // \95Ï\8a·\82³\82ê\82½\8c³\82Ì\95¶\8e\9a\97ñ\82Å\82Ì\95¶\8e\9a\90\94\82ð\8eæ\93¾\r
+ Count = WideCharToMultiByte(CP_ACP, 0, pUTF16, UTF16Length, NULL, 0, NULL, NULL);\r
+ // \95Ï\8a·\89Â\94\\82È\8ec\82è\82Ì\95¶\8e\9a\90\94\82ð\8eæ\93¾\r
+ UTF16Length = MultiByteToWideChar(CP_ACP, 0, pSrc + Count, SrcLength - Count, NULL, 0);\r
+ cInfo->Str += Count - cInfo->EscUTF8Len;\r
+ cInfo->StrLen -= Count - cInfo->EscUTF8Len;\r
+ cInfo->EscUTF8Len = 0;\r
+ if(UTF16Length > 0)\r
+ Continue = YES;\r
+ else\r
+ {\r
+ // \95Ï\8a·\95s\94\\82È\82½\82ß\8e\9f\82Ì\93ü\97Í\82Ì\90æ\93ª\82É\8c\8b\8d\87\r
+ memcpy(cInfo->EscUTF8, cInfo->Str, sizeof(char) * cInfo->StrLen);\r
+ cInfo->EscUTF8Len = cInfo->StrLen;\r
+ cInfo->Str += cInfo->StrLen;\r
+ cInfo->StrLen = 0;\r
+ Continue = NO;\r
+ }\r
+\r
+ free(pSrc);\r
+ free(pUTF16);\r
\r
return(Continue);\r
}\r