`

给JSCharts加入中文字符支持

阅读更多

JSCharts本身免费但不是开源的,如果商业应用的话要付费 - $149,
正常情况下这个东西不支持中文字符显示,
原因在于JSCharts输出的字符都是它“画”出来的,
把代码反编译一下就能发现它最底部附带了数字、英文和常规字符的绘制数据,
显而易见,中文是不可能加进去的。

这里给出一种使其支持中文字符显示的方法,
原理是修改JSCharts内部的字符处理函数不让它画字符,
而是直接输出一个常规的Canvas/VML文本对象,
至于具体怎么实现就不赘述了,
有兴趣可以看一下我附加上去的代码,没有混淆也没有压缩过。

代码是以插件形式发布的,没有改动JSCharts本身的任何代码,
可以把这个插件放到jscharts.js尾部,也可以放到独立的文件里再包含一下。



用法有两种:
1 直接用jscharts_mb.js代替jscharts.js;(已经附加到原代码尾部的版本)
2 加载jscharts.js之后再加载jscharts.plugin.mb.js;(独立包含文件的版本)

以上两步任选其一,页面必须编码为UTF-8
若使用带有中文的xml数据,则xml数据源的编码也要转为UTF-8并且加入encoding="UTF-8"标签;
之后如果要让JSCharts支持中文字符显示,则在生成一个JSChart实例之后紧跟着执行一个函数patchMbString(),如:

var myChart = new JSChart('graph', 'pie');
       myChart.patchMbString();
     // 接下来的代码和以前一样


如果不执行patchMbString则和原来的没有区别,
此外还加入一个新方法 setFontFamily 用于自定义显示图表的字体,如:

       myChart.setFontFamily("微软雅黑"); // 设置显示字体为微软雅黑

另外JSChart默认的字体大小只有8px,如果要较清晰地显示中文的话还得加大字号,
这个用自带的接口就可以了,如:

       myChart.setAxisValuesFontSize(9); // 设置柱状图和线条图的标尺字体大小为9px
       myChart.setPieUnitsFontSize(10); // 设置饼图的项目标识字体大小为10px

具体可以看JScharts.pdf,有空我翻译一个出来。

参考链接:
1 在canvas中绘制文本 - http://www.iteye.com/topic/390235

2 HTML5 Canvas起步 - http://www.xujiwei.com/blog/?id=907
分享到:
评论
1 楼 gexiaoyu1992 2014-08-05  
 

相关推荐

    js charts含中文demo

    然而,原版的JSCharts在处理中文字符时可能存在兼容性问题,导致中文显示不正常或者乱码。在提供的"js charts含中文demo"中,我们可能找到了解决这一问题的方案。 首先,我们需要了解JSCharts的基本用法。JSCharts...

    JS获取带中文字符的字符串长度

    一个JS函数,可以获取你当前输入的字符串的长度,其中中文字符和全角字符是2个长度

    js对中文字符串进行gb2312编码解码

    在JavaScript(JS)中,处理中文字符编码是一个常见的需求,特别是在与服务器交互或者处理文本数据时。GB2312编码是一种在中国大陆广泛使用的简体中文字符集,它包含了6763个常用汉字和一些其他字符。在JavaScript中...

    JS 过滤特殊字符

    JavaScript(JS)是一种广泛应用于网页和网络应用的脚本语言,它主要负责处理客户端的交互逻辑。在实际开发中,我们经常需要过滤掉输入中的特殊字符,以确保数据的安全性和程序的稳定性。本文将深入探讨如何在...

    js处理字符串中的汉字问题集锦

    在JavaScript(JS)编程中,处理字符串中的汉字问题是一项常见的任务。这主要涉及到对Unicode编码的理解,因为中文字符在JS中是以Unicode编码的形式存在的。以下是一些关于如何处理字符串中汉字问题的关键知识点: ...

    C语言字符串替换函数strrpl支持中文汉字

    C语言字符串替换函数strrpl支持中文汉字,解决含中文汉字,可能替换错误的情况。支持GBK、GB18030字符串。

    JAVA中汉字字符转化为英文字符

    ### JAVA中汉字字符转化为英文字符 #### 知识点概览 本文将详细介绍如何在Java中实现汉字到英文字符的转换。此技术主要用于提取汉字的首字母或进行其他基于字符编码的操作。通过以下两个核心方法:`toTureAsciiStr`...

    类似于QString的js类,支持中文的字符串操作

    类似于QString的js类,支持中文的字符串操作,如字符的查找,比较,截取等

    JS去掉字符串空格

    在JavaScript(简称JS)开发中,对字符串进行操作是一项常见且重要的任务,其中去除字符串中的空格是一个典型的处理需求。本文将深入探讨如何利用JS来有效地去除字符串中的空格,包括单个空格、多个连续空格以及字符...

    JavaScript截取中文字符串

    3. **累加长度并构建新字符串**:遍历原始字符串中的每个字符,根据其类型更新`newLength`,并将字符加入到`newStr`中。 4. **添加省略号**:如果`hasDot`参数为真且原始字符串长度大于指定长度,则在截取后的字符串...

    wps-js遍历word所有字符串替换字符.docm

    wps-js遍历word所有字符串替换字符.docm

    js以逗号分隔方式添加删除字符串

    在JavaScript(JS)中,处理字符串是常见的编程任务之一,特别是在构建动态网页和应用程序时。本文将深入探讨如何以逗号或其他自定义分隔符来添加或删除字符串,并且会强调不支持正则表达式中的特殊字符。我们将通过...

    labview字符串拆分到数组 支持中文1

    本篇将详细介绍如何在LabVIEW中实现“字符串拆分到数组”并支持中文字符。 一、字符串拆分的基本概念 在编程中,字符串拆分是指将一个长字符串依据特定的分隔符分解成多个较短的子字符串。在LabVIEW中,我们可以...

    js随机生成32位字符串

    js随机生成32位字符串 包含大小写

    常用汉字utf-8字符集.txt

    ### 常用汉字UTF-8字符集解析与应用 #### 概述 在数字信息时代,字符编码是数据处理的基础。UTF-8(8位通用转换格式)是一种可变长度的字符编码,用于表示Unicode标准中的字符。《常用汉字utf-8字符集》主要收集了...

    js传参数受特殊字符影响错误的解决方法

    类似于 `~!...如果您将编码结果传递给 decodeURI,那么将返回初始的字符串。encodeURI 方法不会对下列字符进行编码:”:”、”/”、”;” 和 “?”。请使用 encodeURIComponent 方法对这些字符进行

    汉字字符串拼音排序-QT、C++

    总之,"汉字字符串拼音排序-QT、C++"这个主题涵盖了C++的字符串操作、QT的QString类、Unicode支持以及中文字符串的拼音处理技术。对于开发涉及中文内容的应用来说,掌握这些知识点是非常有价值的。

    js截取字符串-三种方法

    JavaScript中的字符串截取是编程中常见的操作,主要涉及到三个方法:`slice()`、`substr()` 和 `substring()`。这三个方法都是用来从一个字符串中提取一部分新的字符串,但它们的使用方式和逻辑略有不同。 首先,...

    JS中文字符串转换工具

    改良版的JS中文代码转换工具,之前版本由于被压缩原因导致代码无法正常使用。该版本已被修复。

    字符云 rotator-js-master

    字符云 rotator-js-master字符云 rotator-js-master字符云 rotator-js-master字符云 rotator-js-master字符云 rotator-js-master字符云 rotator-js-master字符云 rotator-js-master字符云 rotator-js-master字符云 ...

Global site tag (gtag.js) - Google Analytics