找到 frxExportXML.pas ,修改 TfrxXMLExport.ExportPage(Stream: TStream) 函数中的两个地方:
1、将字符串 s 的定义由 WideString 改为 Utf8String。
2、找到下面的行,将其中的字体 EStyle.Font.Name 改为 Utf8Encode(EStyle.Font.Name):
WriteExpLn('<Font '+ 'ss:FontName="' + EStyle.Font.Name + '" '+ 'ss:Size="' + IntToStr(EStyle.Font.Size) + '" ' + 'ss:Color="' + HTMLRGBColor(EStyle.Font.Color) + '"' + sb + si + su + '/>');
中字体名称需要用 Utf8 编码下:
WriteExpLn('<Font '+ 'ss:FontName="' + Utf8Encode(EStyle.Font.Name) + '" '+ 'ss:Size="' + IntToStr(EStyle.Font.Size) + '" ' + 'ss:Color="' + HTMLRGBColor(EStyle.Font.Color) + '"' + sb + si + su + '/>');
OK,现在乱码的问题解决了。