zyxgd 2024-03-05 11:55 采纳率: 0%
浏览 12

在Delpih11中使用FDAC的TFDBatchMove批量导入数据,结果乱码的问题

procedure MoveData(FileName,FieldNames,TableName:string);
var
  Q:TFDQuery;
begin
  fList.LoadFromFile(FileName,TEncoding.ANSI);
  ShowMessage(fList.Text);  //文字显示正常

  Q:=TFDQuery.Create(Self);
  Q.Connection:=TheConnection;
  Q.SQL.Clear;
  Q.SQL.Add(Format('Select %s From %s',[FieldNames,TableName]));

  FDDataSetWriter.DataSet:=Q;
  FDTextReader.FileName:=FileName;
  FDTextReader.DataDef.WithFieldName:=true;
  FDTextReader.Encoding:=ecANSI;  //Encodint为ecANSI或ecDefault结果一样,为ecUTF8或ecUTF16则报错“Bad Text Value [1,22,"L]format for mapping item [ID].'1,22,"L' is not a valid integer value”

  FDBatchMove.Reader:=FDTextReader;
  FDBatchMove.Writer:=FDDataSetWriter;
  FDBatchMove.Mode:=dmAlwaysInsert;
  FDBatchMove.Options:=FDBatchMove.Options+[poClearDest];
  FDBatchMove.Execute;  //在Android下执行,导入的数据中,所有字段中的汉字都乱码

  Q.Free;
end;

以上代码,在Win7+Delphi11中运行,结果正常。
但相同代码在Android+Delphi11环境下,虽然可以顺利执行,但导入的数据中,所有字段中的汉字都乱码。
请各位帮忙看看是什么问题,怎么解决?
谢谢!

  • 写回答

4条回答 默认 最新

  • Kwan的解忧杂货铺 Java领域优质创作者 2024-03-05 11:56
    关注

    zyxgd 上午好☀️☀️☀️️
    本答案参考ChatGPT-3.5

    在Android+Delphi11环境下,使用FDAC的TFDBatchMove批量导入数据时,导入的数据中所有字段中的汉字都乱码的问题,可能是编码设置不正确导致的。你可以尝试以下解决方案:

    1. 检查数据源文件的编码格式:确保数据源文件的编码格式与你在代码中设置的编码一致。你可以使用一些文本编辑工具(如Notepad++)来查看和修改文件的编码格式。

    2. 确认Android系统的默认编码:Android系统的默认编码可能与Windows系统有所不同。你可以在Android环境下创建一个简单的测试应用,输出 Android.OS.SysLocale.Default.LocaleID 的值,来确认Android系统的默认编码。

    3. 修改FDTextReader的编码设置:尝试将 FDTextReader.Encoding 设置为 ecDefault。这样FDTextReader将会使用系统默认的编码进行读取。如果仍然出现乱码问题,可以尝试将 FDTextReader.Encoding 设置为 ecUTF8 或 ecUTF16,然后检查数据源文件的编码格式是否与设置一致。

    4. 使用其他编码处理文本:如果以上方法仍无法解决问题,可以考虑使用其他编码处理文本的方式,例如使用Iconv库或其他编码转换工具,在读取文本前先将其转换为正确的编码。

    请根据你的实际情况选择合适的解决方案,希望能帮到你。如果还有其他问题,请及时反馈。

    评论

报告相同问题?

问题事件

  • 创建了问题 3月5日

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。