Using Multi-lingual text in FusionCharts

本文档详细介绍了如何在FusionCharts中正确使用多语言(UTF-8编码)字符,包括必须添加的BOM标记及其具体实现方法。无论是在静态XML文件还是动态生成的XML中,都需要遵循特定步骤来确保图表能够正常显示非英语字符。

http://www.fusioncharts.com/Docs/Contents/SpChar.html

 

 

Using Multi-lingual text in FusionCharts

 

FusionCharts allows you to use multi-lingual (UTF-8) characters on the charts. Shown below is an example where we've used Arabic names on the chart:

You can use multi-lingual characters in all the charts in FusionCharts v3 suite.

FusionCharts supports only left-to-right languages as of now. It doesn't have native support for right-to-left languages like Hebrew. So, if you want to use Hebrew with FusionCharts, you'll have to programatically change the text sequence and then provide the data to FusionCharts.

 
How to use multi-lingual characters?

To use multi-lingual characters on the chart, you necessarily need to use UTF-8 encoded XML. More importantly, the XML file/stream does require a BOM stamp to be present as the very first 3 Bytes of the file. Hence, one must remember the two basic thumb rules :

  1. for dataURL method - the XML file/stream should be having the BOM stamp and
  2. for dataXML method - the HTML/application file containing the XML as well as the chart SWF should have the BOM stamp.
 
What is BOM - Byte Order Mark. It is 'EF BB EF' - these 3 bytes in case of UTF-8 encoded files, the BOM being placed at the very begining of the file. It is an indicator that the file is containing UTF-8 encoded strings.
 
WARNING : Do not rely on specifying the encoding setting i.e. <?xml version="1.0" encoding="UTF-8"?> in the XML header region. This does not add the Byte Order Mark (BOM) to the XML file.
 
Please note that without the BOM stamp the chart would produce gibberish characters. Please compare the images below:
 
Standard (with BOM) Gibberish (without BOM)
 
 
1. In static XML
 
For the XML files which are generated one-time and remains static, you can manually insert a BOM mark. This method is applicable when data is retrieved from file using the dataURL method. All you have to do is make sure the file containing the XML data contains a BOM mark or specify one if it is absent. In order to specify a BOM mark, follow these steps:
  1. Open the file in question in a text-editor that supports UTF-8 encoding with BOM stamp (Example – Windows Notepad).
  2. Open the save menu and specify file name, file type, encoding and BOM mark (if the option is available).
  3. Save the file.
 
The image below shows how this can be done in Windows Notepad.
 
The image below shows how this can be done in Dreamweaver for mac.
 
2. In dynamically generated XML using server-side script
 

Ideally, in most of the cases you would NOT use a physical data file. Instead you'll have your own server side scripts virtually relay the XML data document to the chart. Thus this would come outside the scope of manual maintenance. Rather, you must write some code in the server side script to add the BOM stamp. The method is best practised when UTF-8 encoded strings are retrieved from databases and smilar locations. The implementation can be done using either of the two methods:

  1. Manually add BOM to the XML realyer script file - just like adding BOM stamp to the static XML files you can also add the BOM stamp to the server side file which would be realying the dynamically generaeted XML. This needs to be done when the script file is created for the first time before you start coding in it.

  2. Write BOM using script - In most cases the XML relayer script file might be created with ANSI encoded format. In this case, one needs to add the BOM using script at the very begining of the output stream. Moreover, when a server side script creates an XML file, it should add the BOM stamp as the very first 3 bytes of the file.

 

We list below techniques to implement BOM stamp using major server side technologies.
 
Using ASP.NET C#
 

Response.ContentType = "text/xml; characterset=utf-8" ;
Response.BinaryWrite( new byte[] { 0xEF, 0xBB, 0xBF } );

// Now write your XML data to output stream

 
Using ASP.NET VB
 

Response.ContentType = "text/xml"
Dim UTFHeader() As Byte = {&HEF, &HBB, &HBF}
Response.BinaryWrite(UTFHeader)

' Now write your XML data to output stream

 
Using PHP
 

header ( 'Content-type: text/xml' );
echo pack
( "C3" , 0xef, 0xbb, 0xbf );

// Now write your XML data to output stream

 
Using ASP
 

Response.ContentType = "text/html"
Response.AddHeader "Content-Type", "text/html;charset=UTF-8"
Response.CodePage = 65001
Response.CharSet = "UTF-8"

Response.BinaryWrite( chrb(239) )
Response.BinaryWrite( chrb(187) )
Response.BinaryWrite( chrb(191) )

' Now write your XML data to output stream

 
Using JSP
 

response.setContentType( "text/xml; charset=UTF-8" );
OutputStream outs = response.getOutputStream();
outs
.write( new byte[]{(byte)0xEF, (byte)0xBB, (byte)0xBF} );
outs.flush();

// Now write your XML data to output stream

 
Using ColdFusion
 

context = getPageContext();
response
= context.getResponse().getResponse();
out = response.getOutputStream();

out
.write(239);
out.write(187);
out.write(191);

// Now write your XML data to output stream

 
Using ROR
 

utf8_arr = [0xEF,0xBB,0xBF]
utf8_str = utf8_arr.pack("c3")

# Now write your XML data to output stream

 
3. While using dataXML method
 
In many cases you might need to put the XML in the HTML/application file itself. We call this as dataXML method. Just like adding BOM stamp to a static XML files, in this case too you would need to save the file containing the chart SWF and XML with BOM stamp. This needs to be done when the script/HTML file is created for the first time before you start coding in it.
 

Using Multi-lingual text in FusionCharts 
 
 
FusionCharts allows you to use multi-lingual (UTF-8) characters on the charts. Shown below is an example where we've used Arabic names on the chart:
 
 
You can use multi-lingual characters in all the charts in FusionCharts v3 suite.

FusionCharts supports only left-to-right languages as of now. It doesn't have native support for right-to-left languages like Hebrew. So, if you want to use Hebrew with FusionCharts, you'll have to programatically change the text sequence and then provide the data to FusionCharts.
 
 
How to use multi-lingual characters? 
To use multi-lingual characters on the chart, you necessarily need to use UTF-8 encoded XML. More importantly, the XML file/stream does require a BOM stamp to be present as the very first 3 Bytes of the file. Hence, one must remember the two basic thumb rules :

1.for dataURL method - the XML file/stream should be having the BOM stamp and
2.for dataXML method - the HTML/application file containing the XML as well as the chart SWF should have the BOM stamp.
 
 
What is BOM - Byte Order Mark. It is 'EF BB EF' - these 3 bytes in case of UTF-8 encoded files, the BOM being placed at the very begining of the file. It is an indicator that the file is containing UTF-8 encoded strings. 
 
WARNING : Do not rely on specifying the encoding setting i.e. <?xml version="1.0" encoding="UTF-8"?> in the XML header region. This does not add the Byte Order Mark (BOM) to the XML file.
 
Please note that without the BOM stamp the chart would produce gibberish characters. Please compare the images below: 
 
Standard (with BOM)  Gibberish (without BOM) 
 
 
 
How to add BOM ?
 
1. In static XML 
 
For the XML files which are generated one-time and remains static, you can manually insert a BOM mark. This method is applicable when data is retrieved from file using the dataURL method. All you have to do is make sure the file containing the XML data contains a BOM mark or specify one if it is absent. In order to specify a BOM mark, follow these steps:
1.Open the file in question in a text-editor that supports UTF-8 encoding with BOM stamp (Example – Windows Notepad).
2.Open the save menu and specify file name, file type, encoding and BOM mark (if the option is available).
3.Save the file.
 
 
The image below shows how this can be done in Windows Notepad. 
 
 
The image below shows how this can be done in Dreamweaver for mac.
 
 
2. In dynamically generated XML using server-side script
 
Ideally, in most of the cases you would NOT use a physical data file. Instead you'll have your own server side scripts virtually relay the XML data document to the chart. Thus this would come outside the scope of manual maintenance. Rather, you must write some code in the server side script to add the BOM stamp. The method is best practised when UTF-8 encoded strings are retrieved from databases and smilar locations. The implementation can be done using either of the two methods:

1.Manually add BOM to the XML realyer script file - just like adding BOM stamp to the static XML files you can also add the BOM stamp to the server side file which would be realying the dynamically generaeted XML. This needs to be done when the script file is created for the first time before you start coding in it.


2.Write BOM using script - In most cases the XML relayer script file might be created with ANSI encoded format. In this case, one needs to add the BOM using script at the very begining of the output stream. Moreover, when a server side script creates an XML file, it should add the BOM stamp as the very first 3 bytes of the file.
 
 
We list below techniques to implement BOM stamp using major server side technologies. 
 
Using ASP.NET C# 
 
Response.ContentType = "text/xml; characterset=utf-8" ;
Response.BinaryWrite( new byte[] { 0xEF, 0xBB, 0xBF } );

// Now write your XML data to output stream
 
 
Using ASP.NET VB 
 
Response.ContentType = "text/xml"
Dim UTFHeader() As Byte = {&HEF, &HBB, &HBF}
Response.BinaryWrite(UTFHeader)

' Now write your XML data to output stream
 
 
Using PHP 
 
header ( 'Content-type: text/xml' );
echo pack ( "C3" , 0xef, 0xbb, 0xbf );

// Now write your XML data to output stream
 
 
Using ASP 
 
Response.ContentType = "text/html"
Response.AddHeader "Content-Type", "text/html;charset=UTF-8"
Response.CodePage = 65001
Response.CharSet = "UTF-8"

Response.BinaryWrite( chrb(239) )
Response.BinaryWrite( chrb(187) )
Response.BinaryWrite( chrb(191) )

' Now write your XML data to output stream
 
 
Using JSP 
 
response.setContentType( "text/xml; charset=UTF-8" );
OutputStream outs = response.getOutputStream();
outs.write( new byte[]{(byte)0xEF, (byte)0xBB, (byte)0xBF} );
outs.flush();

// Now write your XML data to output stream
 
 
Using ColdFusion 
 
context = getPageContext();
response = context.getResponse().getResponse();
out = response.getOutputStream();

out.write(239);
out.write(187);
out.write(191);

// Now write your XML data to output stream
 
 
Using ROR 
 
utf8_arr = [0xEF,0xBB,0xBF]
utf8_str = utf8_arr.pack("c3")

# Now write your XML data to output stream
 
 
3. While using dataXML method
 
In many cases you might need to put the XML in the HTML/application file itself. We call this as dataXML method. Just like adding BOM stamp to a static XML files, in this case too you would need to save the file containing the chart SWF and XML with BOM stamp. This needs to be done when the script/HTML file is created for the first time before you start coding in it.
 

Delphi 12.3 作为一款面向 Windows 平台的集成开发环境,由 Embarcadero Technologies 负责其持续演进。该环境以 Object Pascal 语言为核心,并依托 Visual Component Library(VCL)框架,广泛应用于各类桌面软件、数据库系统及企业级解决方案的开发。在此生态中,Excel4Delphi 作为一个重要的社区开源项目,致力于搭建 Delphi 与 Microsoft Excel 之间的高效桥梁,使开发者能够在自研程序中直接调用 Excel 的文档处理、工作表管理、单元格操作及宏执行等功能。 该项目以库文件与组件包的形式提供,开发者将其集成至 Delphi 工程后,即可通过封装良好的接口实现对 Excel 的编程控制。具体功能涵盖创建与编辑工作簿、格式化单元格、批量导入导出数据,乃至执行内置公式与宏指令等高级操作。这一机制显著降低了在财务分析、报表自动生成、数据整理等场景中实现 Excel 功能集成的技术门槛,使开发者无需深入掌握 COM 编程或 Excel 底层 API 即可完成复杂任务。 使用 Excel4Delphi 需具备基础的 Delphi 编程知识,并对 Excel 对象模型有一定理解。实践中需注意不同 Excel 版本间的兼容性,并严格遵循项目文档进行环境配置与依赖部署。此外,操作过程中应遵循文件访问的最佳实践,例如确保目标文件未被独占锁定,并实施完整的异常处理机制,以防数据损毁或程序意外中断。 该项目的持续维护依赖于 Delphi 开发者社区的集体贡献,通过定期更新以适配新版开发环境与 Office 套件,并修复已发现的问题。对于需要深度融合 Excel 功能的 Delphi 应用而言,Excel4Delphi 提供了经过充分测试的可靠代码基础,使开发团队能更专注于业务逻辑与用户体验的优化,从而提升整体开发效率与软件质量。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值