utf8格式的泰文转换成ansi格式是问号乱码

xgPaul 2016-03-03 11:25:58
1,从UTF8格式的文本中读取泰文数据后,使用MultiByteToWideChar函数和WideCharToMultiByte函数转换成ANSI格式的数据时(相同代码转换中文数据都没有问题),转换的数据为问号,请问如何把utf8格式的泰文数据转换成ansi格式的数据?
...全文
592 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Yofoo 2016-03-03
  • 打赏
  • 举报
回复
WideCharToMultiByte 这个函数的参数代码页不能用默认, 用泰文的代码页, 应该是874
zwfgdlc 2016-03-03
  • 打赏
  • 举报
回复
中文的系统,用ANSI即GBK编码,显示不了泰文
图灵转世 2016-03-03
  • 打赏
  • 举报
回复
楼上正解,是代码页的问题。
schlafenhamster 2016-03-03
  • 打赏
  • 举报
回复
“THAI_CHARSET ” ??
xgPaul 2016-03-03
  • 打赏
  • 举报
回复
引用 3 楼 oyljerry 的回复:
ANSI根本就没法支持泰文,你就应该用UTF8等, 或者转成Unicode,然后控件再i显示
控件显示什么意思呢?控件显示泰文?
赵4老师 2016-03-03
  • 打赏
  • 举报
回复
仅供参考:
#pragma comment(lib,"user32")
#pragma comment(lib,"gdi32")
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
HWND WINAPI GetConsoleWindow();
void HideTheCursor() {
    CONSOLE_CURSOR_INFO cciCursor;
    HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);

    if(GetConsoleCursorInfo(hStdOut, &cciCursor)) {
        cciCursor.bVisible = FALSE;
        SetConsoleCursorInfo(hStdOut, &cciCursor);
    }
}
void ShowTheCursor() {
    CONSOLE_CURSOR_INFO cciCursor;
    HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);

    if(GetConsoleCursorInfo(hStdOut, &cciCursor)) {
        cciCursor.bVisible = TRUE;
        SetConsoleCursorInfo(hStdOut, &cciCursor);
    }
}
int main() {
    HWND  hwnd;
    HDC   hdc;
    HFONT hfont;

    system("color F0");
    system("cls");
    HideTheCursor();
    hwnd  = GetConsoleWindow();
    hdc   = GetDC(hwnd);
    hfont = CreateFont(48, 0, 0, 0, 0, 0, 0, 0, 0             , 0, 0, 0, 0, "Arial Unicode MS");
    SelectObject(hdc,hfont);
    TextOutW(hdc,10,10,L"你好",2);
    DeleteObject(hfont);
    hfont = CreateFont(48, 0, 0, 0, 0, 0, 0, 0, JOHAB_CHARSET , 0, 0, 0, 0, "Arial Unicode MS");
    SelectObject(hdc,hfont);
    TextOutW(hdc,10,80,L"\xb7f0\xb7f0\xb2dd\xb2dd",4);
    DeleteObject(hfont);
    ReleaseDC(hwnd,hdc);
    getch();
    system("color 07");
    system("cls");
    ShowTheCursor();
    return 0;
}
oyljerry 2016-03-03
  • 打赏
  • 举报
回复
ANSI根本就没法支持泰文,你就应该用UTF8等, 或者转成Unicode,然后控件再i显示

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧