Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 从Excel到utf-8 mysql的字符串_C++_Excel_Utf 8 - Fatal编程技术网

C++ 从Excel到utf-8 mysql的字符串

C++ 从Excel到utf-8 mysql的字符串,c++,excel,utf-8,C++,Excel,Utf 8,我正在编写一些软件,从XLS文件中提取行并将其插入数据库 在OpenOffice中,单元格如下所示: Brunner Straße, Parzelle Brunner Stra 我正在使用CodeProject中的ExcelFormat库 int type = cell->Type(); cout << "Cell contains " << type << endl; const char* cellCharPtr = cell->GetSt

我正在编写一些软件,从XLS文件中提取行并将其插入数据库

在OpenOffice中,单元格如下所示:

Brunner Straße, Parzelle
Brunner Stra
我正在使用CodeProject中的ExcelFormat库

int type = cell->Type();
cout << "Cell contains " << type << endl;
const char* cellCharPtr = cell->GetString();
if (cellCharPtr != 0) {
  value.assign(cellCharPtr);
  cout << "normal string -> " << value << endl;
}
我使用mysql cpp连接器将其插入数据库,如下所示:

prep_stmt = con -> prepareStatement ("INSERT INTO "
                  + tablename 
                  + "(crdate, jobid, imprownum, impid, impname, imppostcode, impcity, impstreet, imprest, imperror, imperrorstate)"
                  + " VALUES(?,?,?,?,?,?,?,?,?,?,?)");

<...snip...>

prep_stmt->setString(8,vals["street"]);

<...snip...>

prep_stmt->execute();
这很烦人

当从xls文件检索字符串时,如何确保文件所在的任何语言环境都转换为utf-8


这将作为web服务的后端运行,客户端可以上载自己的excel文件,因此“在Libre Office中更改文件的编码”恐怕无法工作。

您的输入似乎是用拉丁语编码的,因此您需要将mysql“connection charset”设置为
latin1

我不熟悉您用来连接MySQL的API。在其他API中,您可以向连接URL添加
charset=latin1
,或者调用API函数来设置连接编码


或者,您可以在将输入输入输入到MySQL之前对其重新编码。

请打印字符串字节数组的十六进制值好吗?用十六进制值更新了问题。
ffffff df
显然不是ASCII,也不是UTF-8。我打赌是拉丁语-1,但符号扩展。您是否也可以包含将字符串插入数据库的代码?十六进制值看起来像iso-8859-1,但utf8\u general\u ci排序规则似乎被\0s不正确地截断。好的,我已经添加了db插入代码,我根据配置参数重新编码了输入,所以我接受这一点。
Brunner Stra