![](/media/cache/profiles/94bd3f4d79c60af8831740e58a68dd6e.jpg.50x50_q85.jpg)
replay get form stewgate
Dependencies: EthernetNetIf NetServices mbed
Fork of HTTPClientExample by
Diff: utf8tosjis.c
- Revision:
- 4:a81d4a6f6e29
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/utf8tosjis.c Sat Aug 31 07:55:46 2013 +0000 @@ -0,0 +1,41 @@ +#include <stdio.h> +#include <stdlib.h> +#include <locale.h> +#include <cwchar> + +int utf8tosjis(const char* utfBuffer, int utfBufLen, char* sjisBuffer, int sjisBufLen) +{ + wchar_t wstr[256]; + int i, wi; + wchar_t wc; + mbstate_t state = {0}; + size_t ret; + char * current_locale; + i = wi = 0; + + current_locale = setlocale(LC_CTYPE, "UTF-8"); + if (current_locale == NULL) + return 0; + + while (1) { + ret = mbrtowc(&wc, utfBuffer+i, 3, &state); + if (ret == (size_t)-2 || ret == (size_t)-1) { + printf("\nThere was a problem decoding the multibyte string.\n"); + return ret; + } else if (ret == 0) { + break; /* we hit \0, end of string */ + } else { + i += ret; + wstr[wi++] = wc; + } + } + wstr[wi] = L'\0'; + + current_locale = setlocale(LC_CTYPE, "SJIS"); + if (current_locale == NULL) + return 0; + + ret = wcstombs(sjisBuffer, wstr, sjisBufLen); + + return ret; +} \ No newline at end of file