FastReport 2007下导出 XML 格式的 XSL 文件时中文乱码的解决办法

找到 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,现在乱码的问题解决了。

分享到: