显示从MySQL检索到基于Linux的C++应用程序的UTF-8数据,我遇到了很大的麻烦.UTF文本显示为问号.
该应用程序使用MySQL C API.所以我在mysql_init()之前和之后通过了UTF-8选项mysql_real_connect():
mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, 'utf8');
Run Code Online (Sandbox Code Playgroud)
和
mysql_options(&mysql,MYSQL_INIT_COMMAND, 'SET NAMES utf8');
Run Code Online (Sandbox Code Playgroud)
但没有运气.测试仍显示为问号.我用Perl脚本做了一些测试(我对它更熟悉;)).如果我为连接指定了UTF-8选项,则文本会正确显示:
$dbh->{'mysql_enable_utf8'} = 1;
$dbh->do('SET NAMES utf8');
Run Code Online (Sandbox Code Playgroud)
知道如何在C++应用程序中正确显示UTF-8数据吗?