搜档网
当前位置:搜档网 › 使用Doxygen彻底解决生成的chm文件导航栏中文乱码问题

使用Doxygen彻底解决生成的chm文件导航栏中文乱码问题

使用Doxygen彻底解决生成的chm文件导航栏中文乱码问题
使用Doxygen彻底解决生成的chm文件导航栏中文乱码问题

方法一:使用doxygen为C/C++程序生成中文文档

转自https://www.sodocs.net/doc/f13937216.html,

按照约定的格式注释源代码,用工具处理注释过的源代码产生文档。通过这种方式产生文档至少有以下好处:

?便于代码和文档保持同步。

?可以对文档做版本管理。

很多编程语言都有类似的文档工具,例如:Java有javadoc,Ruby有rdoc。对于C/C++程序,我们可以用Doxygen生成文档。本文通过为一个C++程序“谁养鱼”建立文档,介绍了怎样在Windows平台使用Doxygen。

Doxygen比较适合制作API的接口文档,CHM是这类文档的常见格式。最新版本的Doxygen(目前是1.5.2)统一采用UTF-8作为输出文件的编码格式,但微软的CHM编译工具不支持UTF-8,这就为制作中文CHM文档带来麻烦。本文提出了解决这个问题的方法。

1 Doxygen简介

1.1 要做什么

使用Doxygen生成文档,主要是两件事:

1.写一个配置文件(Doxyfile)。一般用Doxywizard生成后,再手工修改。

2.按照Doxygen的约定,将代码“文档化”。

然后只要执行命令:

doxygen Doxyfile

就可以了。输入文件、输出目录、参数等都是在Doxyfile中配置的。

1.2 得到什么

Doxygen的输出格式主要有HTML、LATEX、RTF等:

?Doxygen在输出HTML文档时,可以自动准备用于制作CHM的项目文件(.hhp)、目录文件(.hhc)和索引文件(.hhk)。用HTML Help Workshop 中的CHM编译器(hhc.exe)编译后生成CHM文件。

?Doxygen在输出LATEX文档的同时准备了转换到pdf格式的makefile。只要系统安装了合适的TEX工具,就可以从LATEX文档生成pdf文档。

?Doxygen输出的RTF格式,已经针对Word作了优化,可以较好地转换到Word文档。

1.3 需要什么

完成本文的范例需要以下工具:

1.Doxygen的最新版本,可以从Doxygen的网站下载。

2.Graphviz是一个图形可视化软件。Doxygen使用Graphviz生成各种图形,

例如类的继承关系图、合作图,头文件包含关系图等。可以从Graphviz

的网站下载Graphviz的最新版本。Doxygen使用了Graphviz的布局引擎dot,所以在文档中将其称作dot。

3.为解决中文问题,需要使用Cygwin的iconv程序作编码转换。

4.为解决中文问题,需要一个命令行的查找替换工具。我选择了白杨创作的

工具fr。

可以从我的主页https://www.sodocs.net/doc/f13937216.html,下载这些工具:Doxygen 1.5.2、Graphviz 2.12、iconv (GNU libiconv 1.9)和fr 2.1.1.120。

2 CHM格式的中文问题

前面说过:目前,Doxygen统一采用UTF-8作为输出文件的编码格式,但微软的CHM编译工具(hhc.exe)不支持UTF-8。如果直接用hhc.exe编译,中文不能正确显示。解决这个问题的思路很简单:

?将Doxygen输出的html文件以及CHM的项目文件(.hhp)、目录文件(.hhc)和索引文件(.hhk)全部转换到GBK编码后,再用hhc.exe编译即可。

可以用iconv对文件作编码转换。对于html文件,除了文件内容的编码转换外,还要将

中的“UTF-8”替换成“gb2312”。

2.1 用批处理简化操作

我写了一些批处理文件(.bat)用于简化处理过程,包括:

2.1.1 clean.bat ——清空以前输出

@echo off

echo 清空以前输出

if exist refman.chm del /f /q refman.chm

if exist output\html del /f /q output\html\*.*

if exist output\latex del /f /q output\latex\*.*

if exist output\rtf del /f /q output\rtf\*.*

if exist output del /f /q output\*.*

2.1.2 build.bat ——调用doxygen生成文档

@echo off

echo 生成文档

doxygen Doxyfile

2.1.3 utf82gbk.bat ——将指定文件(支持通配符)从utf-8编码转换到gbk 编码

@echo off

echo 将%1从utf-8编码转换到gbk编码

for %%f in (%1) do copy %%f %%f.utf8

for %%f in (%1) do iconv -c -f utf-8 -t gbk %%f.utf8 > %%f

这个批处理文件要求系统当前路径上有iconv.exe。执行iconv时,使用-c参数忽略无法转换的字符。否则如果输入文件包含无法转换的字符,转换会失败。输入文件被备份到加过.utf8后缀的文件。

2.1.4 html-utf82gbk.bat ——将指定html文件(支持通配符)从utf-8编码转换到gbk编码

@echo off

call utf82gbk %1

echo 将%1中的charset从UTF-8改为gb2312

fr %1 -f:charset=UTF-8 -t:charset=gb2312

这个批处理文件要求系统当前路径上有iconv.exe和白杨的fr.exe。

2.1.5 makechm.bat ——用Doxygen的输出制作chm文件

@echo off

echo 将Doxygen输出文件编码从utf-8转换到gbk

set path=%path%;%cd%

cd output\html

echo 处理chm输入文件

call utf82gbk.bat index.hhp

call utf82gbk.bat index.hhc

call utf82gbk.bat index.hhk

call html-utf82gbk *.html

echo 生成chm文件

"C:\Program Files\HTML Help Workshop\hhc.exe" index.hhp

if exist index.chm copy index.chm ..\..\refman.chm

del /f /q *.chm

cd ..\..

这个批处理文件假设系统在目录“C:\Program Files\HTML Help Workshop\”安装了“HTML Help Workshop”。并假设输出目录是Doxyfile所在目录的子目录output。

2.1.6 rebuild.bat ——重新生成chm文件

@echo off

call clean.bat

call build.bat

call makechm.bat

2.2 小结

了解DOS命令的朋友应该很容易看懂这些批处理吧。将这些批处理文件放在工作目录(即Doxyfile所在目录)后,每次只要键入rebuild就可以重新生成chm 文件。必要时可以单独使用clean、build、makechm命令。utf82gbk和

html-utf82gbk命令也可以单独使用。读者可以从我的主页https://www.sodocs.net/doc/f13937216.html,下载这些批处理文件。

3 创建配置文件

3.1 准备工作

“谁养鱼”是我最近写的一个小程序,它用推理法求解爱因斯坦谜题——“谁养鱼”。读者可从《穷举和推理:用C++程序求解“谁养鱼”》下载未文档化的程序。

制作文档前,我们要完成以下准备工作:

1.安装Doxygen、Graphviz和“HTML Help Workshop”。我使用的HTML Help

Workshop版本是4.74.8702.0,英文版。网上有汉化版本,但运行时会出错。

2.将iconv和fr程序放到系统路径包含的目录,例如

c:\windows\system32。

3.建立一个空目录fish,放入要注释的程序(fish\src),建立制作文档

的工作目录(fish\doc),将前面介绍的批处理文件放到doc目录。

好了,现在可以运行Doxywizard创建配置文件。

可以直接点“Save...”按钮,将配置保存在doc\Doxyfile。这时,Doxyfile 的内容是Doxygen的默认设置。Doxyfile是普通文本文件,我们可以直接打开编辑。不过在Doxywizard的界面上填写也很方便,每个参数都有详细提示。建议用Doxywizard完成第一次设置。以后如果需要调整个别参数,可以直接编辑Doxyfile。

3.2 填写参数

点“Expert...”按钮后,开始填写配置参数。

:),Doxygen是不是有很多参数?其实大多数参数都有缺省值,需要填写的不算多,下面分页介绍:

3.2.1 Project页

DOXYFILE_ENCODING是Doxyfile的文本编码。如果文件中有中文字符,可以填写GBK。

填写项目名(PROJECT_NAME)、项目版本(PROJECT_NUMBER)、输出目录(OUTPUT_DIRECTORY)和输出语言(OUTPUT_LANGUAGE)。输出目录可以按Doxyfile的相对目录填写。输出语言相当于程序资源,选择Chinese。

Doxywizard的中文支持不完善,中文字符会被存为乱码。我们直接编辑Doxyfile,填写:

PROJECT_NAME = 谁养鱼

取消FULL_PATH_NAMES。我们修改了以下参数:

DOXYFILE_ENCODING GBK

PROJECT_NAME 谁养鱼

PROJECT_NUMBER 1.0

OUTPUT_DIRECTORY output

OUTPUT_LANGUAGE Chinese

FULL_PATH_NAMES NO

3.2.2 Messages页

在Messages页将WARN_LOGFILE填写为build.log。这样,Doxygen会将编译时出现的警告和错误保存在build.log,我们可以对照修改。

WARN_LOGFILE build.log

3.2.3 Input页

指定输入源文件目录(INPUT),将输入文件编码(INPUT_ENCODING)改为GBK。

INPUT ..\src

INPUT_ENCODING GBK

FILE_PATTERNS参数是Doxygen要处理的文件类型,缺省值包括Doxygen支持的所有文件类型。不能用Doxygen文档化任意文件类型。例如Doxygen不支持汇编程序。

3.2.4 Source Browser页

选择SOURCE_BROWSER,在文档中包含源代码。

SOURCE_BROWSER YES

3.2.5 Html页

选择GENERATE_HTMLHELP后,Doxygen会准备生成chm文件需要的项目文件、目录文件和索引文件。可以通过参数HTML_HEADER和HTML_FOOTER定制页面,参数值是包含定制内容的文件名。例如,我们可以建立文件html_foot,内容为:

target="_top">穷举和推理:用C++程序求解“谁养鱼”

然后将HTML_FOOTER的值设为html_foot。

GENERATE_HTMLHELP YES

HTML_FOOTER html_foot

3.2.6 LaTex页

取消GENERATE_LATEX,不产生LaTex输出。

GENERATE_LATEX NO

3.2.7 Dot页

在Dot页,可以选上UML_LOOK、CALL_GRAPH和CALLER_GRAPH。CALL_GRAPH是本函数调用其它函数的示意图,例如:

CALLER_GRAPH是本函数调用者的示意图,例如:

UML_LOOK YES

CALL_GRAPH YES

CALLER_GRAPH YES

3.3 运行Doxygen

对于“谁养鱼”这个例子,其它参数都可以使用缺省值。从命令行进入doc目录后(参见附录1)运行rebuild.bat,就可以产生refman.chm。这时,我们还没有对程序作任何文档化,输出仅包含Doxygen通过Dot生成的示意图。

我们可以编辑Doxyfile,将EXTRACT_ALL设为YES,再rebuild。这时,Doxygen 会自动提取程序的所有要素,包括文件、函数、变量、类型定义、枚举、枚举值、宏定义等。

只想看看结果的朋友可以下载这个chm文件。Doxygen配置文件中所有参数的详细参考可以查阅Doxygen手册中的“Configuration”页。上篇到此结束。下篇将介绍文档化程序的方法。

后记(2007/7/15)

不少朋友说按照我的说明不能产生期待的结果,这一定是我的文章表述不清了,不好意思。最近,我手头事情比较多,这几个月恐怕没时间写本文的下篇了。好在网上介绍Doxygen文档化的文章还是不少的,少我这篇应该也没什么。

其实,这篇文章的目的只是让不熟悉doxygen的朋友能够快速地了解这个工具。大家如果真的要使用doxygen,还是应该多花些时间看看它的文档。我把本文范例的工作目录打包放在我的主页https://www.sodocs.net/doc/f13937216.html,上,需要的朋友可以下载。这

是个未完成的版本,我去掉了EXTRACT_ALL,注释了几个函数。因为注释不完整,编译(在doc目录rebuild)时还会产生非空的build.log。log是善意的提示,可以帮助我们完善文档。

附录1 快速进入命令行并转到指定目录

如果经常用到命令行,可以在注册表的“HKEY_CLASSES_ROOT\Folder\shell”下建立“Command Prompt Here”项及其子项“command”,将“command”项的默认值设为字符串值“cmd.exe”。这时,只要在资源管理器的任意目录上点击右键并选择“Command Prompt Here”就可以快速进入命令行并转到指定目录。

我将这个注册表项保存成reg文件:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Folder\shell\Command Prompt Here]

[HKEY_CLASSES_ROOT\Folder\shell\Command Prompt Here\command]

@="cmd.exe"

需要的朋友可以下载后双击导入注册表即可。

在vista上,这样操作不能进入指定目录,也没有必要这样做。在vista中:只要在资源管理器中先按下shift键,再用右键点击文件夹,就会出现“在此处打开命令窗口”的菜单项,选择即可。在左侧的目录树上,这样操作无效。

方法二:彻底解决使用Doxygen 1.5.6自动生成的chm 文件导航栏中文乱码问题

载:https://www.sodocs.net/doc/f13937216.html,/course/3_program/c++/cppjs/20100630/290869 .html

最近升级了一下doxygen到最新版1.5.6,结果发现生成的chm文件导航栏中文会出现乱码,折腾了一天,终于查明原因并解决,特此分享给大家。

原因:

doxygen 1.5.6版(不知道从哪个版本开始的)内部一律使用UTF-8编码,生成的index.hhc 文件也是使用UTF-8编码,然而微软的hhc编译工具不支持UTF-8编码,结果导致编译出的chm文件正文部分中文一切正常,但导航栏全是乱码。从网上搜了一圈,好像大家基本

都遇到了这一情况,解决办法各异。

解决办法:

解决办法的核心就是将index.hhc文件用编码转换工具(例如iconv,ultraedit等)转换成GBK,再用hhc编译即可。

由于doxygen会生成index.hhc之后直接自动调用hhc进行编译,中间并未留有供我进行转换的机会,而我又不想在doxygen运行完毕生成了chm文件之后再重新修改index.hhc 文件(自动或手动),然后再次重新生成chm文件,没办法,只有修改doxygen的源码重新编译了。

修改过程:

首先下载源码并编译doxygen,注意一定要先阅读编译指南,我就是没看编译指南导致走了不少弯路,因为doxygen编译过程中要用到UnxUtil工具,需要下载并装好。

编译通过后,找到生成index.hhc文件的源代码文件HtmlHelp.h/HtmlHelp.cpp,进行修改。修改思路为:

在保存index.hhc文件之前先进行编码转换,直接转换到GBK编码在存储,这样就可以直接生成GBK编码的index.hhc文件,后续过程就水到渠成了。

相关代码:

HtmlHelp.h

class HtmlHelp : public IndexIntf

{

private:

QFile *cf,*kf;

QBuffer *cb; // Added by zwjia

QTextStream cts,kts;

};

HtmlHelp.cpp

void HtmlHelp::initialize()

{

const char *str = Config_getString("CHM_INDEX_ENCODING");

if(!str) str = "Windows-1250";

m_fromUtf8 = portable_iconv_open(str,"UTF-8");

/* open the contents file&nb

sp;*/

QCString fName = Config_getString("HTML_OUTPUT") + "/index.hhc";

cf = new QFile(fName);

if (!cf->open(IO_WriteOnly))

{

err("Could not open file %s for writing\n",fName.data());

exit(1);

}

cb = new QBuffer(); // Added by zwjia

cb->open(IO_WriteOnly); // Added by zwjia

/* Write the header of the contents file */

cts.setDevice(cb);

cts.setEncoding(QTextStream::Latin1);

}

void HtmlHelp::finalize()

{

// end the contents file

cts << "\n";

cts << "\n";

cts << "\n";

cts.unsetDevice();

////////////////////////////////////////

////////

// Modified by zwjia

QByteArray buf = cb->buffer();

void* handle = portable_iconv_open("GBK","UTF-8");

size_t inputsize = buf.size();

size_t outputsize = inputsize*4+1;

char* in = buf.data();

QByteArray outbuf;

outbuf.resize(outputsize);

char* out = outbuf.data();

size_t len = portable_iconv(handle,(const char **)&in,&inputsize, &out, &outp utsize );

outbuf.resize(out-outbuf.data());

cf->writeBlock(outbuf);

cf->close();

delete cf;

delete cb;

portable_iconv_close(handle);

// Modified by zwjia --end

//////////////////////////////////////////////////////////////

}

方法三:Doxygen心得

疯子阿虹的日志- 网易博客

最后也是经常遇到的问题就是DoxyGen生成的CHM文件的左边树目录的中文变成了乱码。这个只需要将chm索引的编码类型修改为GB2312即可。在HTML的CHM_INDEX_ENCODING中输入GB2312即可。

AFEPack安装过程——qixinbo

安装AFEPack软件包,需要提前安好的软件有gcc、g++、doxygen、automake(1.11版本)、dx、emacs、vim。 第一步: 我会有一个用户名,比如为qixinbo。在home/qixinbo下建立files,include,lib 三个目录。其中include目录是用于存放程序编译时调用的.h头文件,lib目录是用于存放动态链接库.so文件 然后将 boost_1_37_0.tar.bz2, deal.nodoc-6.3.1.tar.gz, AFEPack-snapshot.tar.gz, easymesh.c.gz 四个文件放在files里。 第二步: 安装boost头文件。将boost_1_37_0.tar.bz2解压到files里,即运行tar jxvf boost_1_37_0.tar.bz2命令。解压后会得到一个boost_1_37_0目录,该目录下有一个boost目录,将该目录拷贝到include文件夹里,即 cp –r boost /home/qixinbo/include 第三步: 安装deal.II。 注:个人建议不要下载太高版本,过高版本可能会报Point歧义,原因是由于部分版本deal.II修改了底层网格的一些架构。现deal.II 7.0.0及之前版本已测试可以使用。 (1) 将deal.nodoc-6.3.1.tar.gz解压到files里,即运行tar zxvf deal.nodoc-6.3.1.tar.gz 命令。解压后会得到一个deal.II目录。进入该目录,运行 ./configure 如果configure通过,就运行 make base lac 在configure过程如果出现提示不存在doxygen,表示它没有被安装在系统里面,请在网上google搜索下载,把这个安装上。 (2) 进入/home/qixinbo/include文件夹,链接头文件。即运行 ln –sf /home/qixinbo/files/deal.II/base/include/base . ln –sf /home/qixinbo/files/deal.II/lac/include/lac . ln –sf /home/qixinbo/files/deal.II/contrib/tbb/tbb22_20090809oss/include/tbb . 请注意最后一个点前面有一个空格。 (3)进入/home/qixinbo/lib文件夹,链接库文件。即运行 ln –sf /home/qixinbo/files/deal.II/lib/lib* . 请注意最后一个点前面有一个空格。 这三步做完以后应该在/home/qixinbo/include目录下存在deal.II 的头文件lac、

中文乱码解决大全

SSH开发过程中的中文问题汇总 作者:Rainisic来源:博客园发布时间:2012-01-11 14:26 阅读:50 次原文链接[收藏] 在使用SSH开发的过程中,我们经常会因为各种各样的中文乱码问题而苦恼。之前开发的过程中遇到过一些,但是都没有记录下来,这次,我就遇到的中文问题进行一个汇总,希望能够对大家有所帮助。 1. 平台环境参数 操作系统:Windows 7 旗舰版64位 JDK版本:JDK 1.6 / JDK 1.7 (此处由于JDK 7 发布不久,所以对两个版本进行测试) 开发环境:Eclipse Java EE Indigo 网站容器:Tomcat 7.0 开发框架: Struts 2.3.1.1-GA Spring 3.1.0-release Hibernate 4.0.0-Final / Hibernate 3.6.9-Final (此处由于Hibernate 4 final 刚刚发布不久,所以对两个版本进行测试) 2. 中文问题汇总 (1)HTML中未指定文件编码 问题描述:在HTML中未指定文件编码,在部分浏览器中将会出现中文乱码。 解决方案:在HTML的head标签中指定文档编码,代码如下(请根据DOCTYPE选择): // HTML 4.01 Transitional

// HTML 5 (2)表单提交使用GET方法 问题描述:在HTML form 中提交表单的时候使用method="get"导致中文乱码。 解决方案:form表单的method设置为post,代码如下:

(3)JSP文件中未指定文档编码类型 问题描述:在JSP文件中未指定JSP文档编码,在浏览器中会出现中文乱码。 解决方案:在JSP文件首部增加指定文档编码的代码,代码如下: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> (4)文件编码不正确 问题描述:由于Java文件、JSP文件等文件编码不正确,导致中文乱码。 解决方案:设置文件的默认编码为UTF-8(如果需要使用其他编码,请确保上述两个编码格式与文件编码相同) 设置方法: 当前文件编码修改:该文件右键→Properties→Resource,右侧Text file encoding→Other →UTF-8 默认文件编码修改: 0. Windows→Preferences 打开Eclipse配置选项窗口。 1. General→Content Type,右侧Text 下面所需要的文件类型Default encoding设置为UTF-8

乱码形成原因及消除方法大全 八

乱码形成原因及消除方法大全八 乱码形成原因及消除方法大全.txt生活,是用来经营的,而不是用来计较的。感情,是用来维系的,而不是用来考验的。爱人,是用来疼爱的,而不是用来伤害的。金钱,是用来享受的,而不是用来衡量的。谎言,是用来击破的,而不是用来装饰的。信任,是用来沉淀的,而不是用来挑战的。乱码形成原因及消除方法大全 2008-01-18 14:08乱码形成原因及消除方法大全当我们浏览网页、打开文档或邮件,运行软件时,经常会看到乱码,通常是由于源文件编码,Windows 不 能正确识别造成的的,也可能是其他原因。乱码给我们带来了太多的烦恼,为了帮助大家彻底摆脱乱码 ,下面我们就来探讨一下乱码的形成原因及其消除方法。 一、乱码有五种类型 常见的乱码,一般可以分成五种类型:第一类是文本/文档文件乱码,这一般是由于源文件编码,与

Windows使用的编码不通用造成的;第二类是网页乱码,形成原因与第一类乱码类似;第三类是Windows 系统界面乱码,即中文Windows的菜单、桌面、提示框等显示乱码,主要是Windows注册表中有关字体的 部分设置不当引起的;第四类是应用程序的界面乱码,即各种应用程序(包括游戏)本来显示中文的地 方出现乱码,形成原因比较复杂,有第二类的乱码原因,也可能是软件用到的中文链接库,被英文链接 库覆盖造成的;第五类是邮件乱码,形成原因也极其复杂。 二、如何消除应用程序的界面乱码? 目前有些软件发行了Unicode版本,这是一种通用的字符编码标准,涵盖了全球多种语言及古文和专 业符号,这种版本的软件运行在任何系统和语言上都不会乱码,如果是非Unicode编码的程序,就会有乱

doxygen配置说明

?ABBREVIATE_BRIEF //简短摘要 ?ALIASES //别名 ?ALLEXTERNALS //所有外部文档 ?ALPHABETICAL_INDEX //字母顺序索引 ?ALWAYS_DETAILED_SEC //详细描述部分 ?BINARY_TOC //二进制操作 ?BRIEF_MEMBER_DESC //简短的成员描述 ?CALL_GRAPH //调用到的图 ?CASE_SENSE_NAMES //检测的范例的名字 ?CHM_FILE //CHM格式文件 ?CLASS_DIAGRAMS //类-表 ?CLASS_GRAPH //类-图 ?COLLABORATION_GRAPH //相互调用关系图 ?COLS_IN_ALPHA_INDEX //以列形式显示的字母顺序的索引?COMPACT_LATEX //压缩的LATEX文档 ?COMPACT_R TF //压缩的RTF文档 ?CREATE_SUBDIRS //创建一个"子目录"

?DETAILS_AT_TOP //文档的详细头部 ?DIRECTORY_GRAPH //目录图 ?DISABLE_INDEX //禁用INDEX ?DISTRIBUTE_GROUP_DOC //禁用文档成组显示 ?DOT_IMAGE_FORMAT //点阵图形 ?DOT_MULTI_TARGETS //多个DOT目标 ?DOT_PATH //DOT路径设置 ?DOT_TRANSPARENT //DOT转换设置 ?DOTFILE_DIRS //DOTFILE 列表显示 ?ENABLE_PREPROCESSING //允许"预处理"指令 ?ENUM_VALUES_PER_LINE //每行的枚举值 ?ENABLED_SECTIONS //允许分段显示 ?EXAMPLE_PATH //例子路径 ?EXAMPLE_PATTERNS //例子用的文件格式(*.cpp, *.h , *.java等)?EXAMPLE_RECURSIVE //例子递归 ?EXCLUDE //可执行文件 ?EXCLUDE_PATTERNS //可执行文件格式(*.exe, *.dll等)

解决jsp中文显示问题

解决: jsp页面中文显示问题 <%@ page pageEncoding=”gb2312″ %>,决定jsp页面编写时的编码。 <%@ page content_type=”text/html;charset=UTF-8″ %>,决定jsp页面显示在客户端浏览器的编码。 在解决这个问题的同时,我还发现了一篇至今为止我所见过的解决java中文问题最彻底的文章: 上篇:https://www.sodocs.net/doc/f13937216.html,/pcedu/empolder/gj/java/0404/ 366404.html 下篇:https://www.sodocs.net/doc/f13937216.html,/pcedu/empolder/gj/java/0405/ 368760.html 深入Java中文问题及最优解决方法 Abstract:本文深入分析了Java程序设计中Java编译器对java源文件和JVM对class类文件的编码/解码过程,通过此过程的解析透视出了Java编程中中文问题产生的根本原因,最后给出了建议的最优化的解决Java中文问题的方法。 1、中文问题的来源 计算机最初的操作系统支持的编码是单字节的字符编码,于是,在计算机中一切处理程序最初都是以单字节编码的英文为准进行处理。随着计算机的发展,为了适应世界其它民族的

语言(当然包括我们的汉字),人们提出了UNICODE编码,它采用双字节编码,兼容英文字符和其它民族的双字节字符编码,所以,目前,大多数国际性的软件内部均采用UNICODE编码,在软件运行时,它获得本地支持系统(多数时间是操作系统)默认支持的编码格式,然后再将软件内部的UNICODE转化为本地系统默认支持的格式显示出来。Java的JDK和JVM即是如此,我这里说的JDK是指国际版的JDK,我们大多数程序员使用的是国际化的JDK版本,以下所有的JDK均指国际化的JDK版本。我们的汉字是双字节编码语言,为了能让计算机处理中文,我们自己制定的gb2312、GBK、GBK2K等标准以适应计算机处理的需求。所以,大部分的操作系统为了适应我们处理中文的需求,均定制有中文操作系统,它们采用的是GBK,GB2312编码格式以正确显示我们的汉字。如:中文Win2K默认采用的是GBK编码显示,在中文WIN2k中保存文件时默认采用的保存文件的编码格式也是GBK 的,即,所有在中文WIN2K中保存的文件它的内部编码默认均采用GBK编码,注意:GBK是在GB2312基础上扩充来的。 由于Java语言内部采用UNICODE编码,所以在JAVA程序运行时,就存在着一个从UNICODE编码和对应的操作系统及浏览器支持的编码格式转换输入、输出的问题,这个转换过程有着一系列的步骤,如果其中任何一步出错,则显示出来的汉字就会出是乱码,这就是我们常见的JAVA中文问题。

程序编码规范

蜗牛游戏程序编码规范 (版本 0.1) 规范说明:............................................................. 一、命名规则...................................................... 二、程序的版式.................................................... 三、注释.......................................................... 四、服务端平台无关................................................ 五、服务端表格操作................................................ 六、客户端文件读写................................................ 七、客户端内存操作................................................ 八、脚本内的注释.................................................. 规范说明: 制定该规范的目的是让程序清晰易懂、易维护、易管理。该规范为强制规范,必须执行,如果有没涉及的地方请参考《高质量C++-C编程指南》。当所在编程环境(如MFC、Linux)与本规范有差异时,可以使用所在编程环境的规范,但是同一个项目必须是统一的规范。 最后希望大家都能养成一个良好的程序习惯,一个好的习惯受益终身! 一、命名规则 1.所有命名应当直观且可拼读,并具有实际意义; 2.类名和函数名用大写字母开头的单词组合而成,接口类名以I开头; 3.常量全用大写的字母,用下划线分割单词,尽量不要使用宏; 4.类的数据成员加前缀m_,全局变量加前缀g_,静态变量加前缀s_; 5.变量名第一个字母小写,使用“名词”或“形容词+名词”的词义表示法; 示例: ·局部变量 char *pStringBuffer; int &stringFindResult; bool isEngineStartup; ·函数命名 unsigned int GetVoyageCoreState(); static bool GetVoyageServiceCount(int &count); ·结构类型

doxygen 解析支持的标签规范

doxygen 解析支持的标签规范 目录 1. 1. 2. 3. 4. 5. 6. 2. 3. dox 常用命令 dox 文献信息 dox 状态信息 dox 模块信息 dox 函式信息 dox 提醒信息 dox 关联信息 dox 标签格式 dox 注释风格
6. dox 常用命令
讲述基本的常用标签命令
6.1. dox 文献信息
@author ... 作者 @brief ... @file ... 摘要 文件声明
6.2. dox 状态信息
@version ... 版本推荐使用$Id$ @todo ... 改进,可以指定针对的版本
6.3. dox 模块信息
@var ... 模块变量 说明 @typedef ... 模块变量类型说明
6.4. dox 函式信息
@param p ... 参数 p 说明 @arg ... 列表说明参数 信息
@return ... 返回值说明

@retval ... 返回值类型说明
6.5. dox 提醒信息
@note ... 注解 @attention ... 注意 @bug ... @warning ... 问题 警告
6.6. dox 关联信息
@sa ... 参考资料
7. dox 标签格式
约定文档化标签的语法
? ?
epydoc 支持两种标签的语法! doxygen: \tag 内容...
?
Javadoc: @tag 内容...
?
为了简化学习,在新浪标准化开发中我们推荐统一使用
@tag: 内容... 格式
8. dox 注释风格
约定文档化标签放置
? ?
依照 C/C++ JAVA 类别语言注释风格自然的进行 /**

C 注释规范

C++注释规范 版本:1.0 制定部门:技术架构部C++基础架构组 2006.8

目录 1说明 (3) 2注释种类 (3) 2.1重复代码 (3) 2.2解释代码 (3) 2.3代码标记 (3) 2.4概述代码 (3) 2.5代码意图说明 (4) 2.6传达代码无法表达的信息 (4) 3注释原则 (4) 3.1站在读者的立场编写注释 (4) 3.2注释无法取代良好的编程风格 (4) 3.3好注释能在更高抽象层次上解释我们想干什么 (5) 4规范细则 (5) 4.1文件注释规范 (5) 4.2名字空间注释规范 (6) 4.3类定义注释规范 (7) 4.4数据声明注释规范 (8) 4.5函数注释规范 (8) 4.6代码标记注释规范 (10) 5FAQ (10) 5.1枚举值需要注释吗? (10) 5.2前置条件、后置条件和不变式有必要注释出来吗? (10) 5.3写注释太耗时间怎么办? (11) 5.4有效的注释是指什么? (11) 参考书目 (11) 参考工具 (11)

1说明 本文档用于规范C++代码中注释的编写。规范中提出的多数注释格式都来源于文档生成工具doxygen,所以遵从本规范进行注释的C++代码都可以使用doxygen生成美观一致的代码文档。 同时另一方面,美观绝非衡量文档质量的唯一标准。文档内容准确与否,是否充分,以及语言组织是否清晰流畅,这些都是决定一份文档质量的重要标准。遗憾的是,这些标准当中有不少需要通过主观加以判断,很难进行明确的规范。 所以我们将尽可能的提供明确的评判标准,同时,本规范中也不可避免的提出了一些比较主观的注释要求或是建议,这些要求或是建议多数都来自于众多先驱多年的开发经验。遵循它们不仅有助于生成一份美观的代码文档。更重要,依照这些要求和建议来编写注释,能够有效的帮助开发者在早期就反省自己设计的合理性,同时也为编写单元测试提供更多的帮助。 2注释种类 2.1重复代码 重复性注释只是用不同文字把代码的工作又描述一次。他除了给读者增加阅读量外,没有提供更多信息。 2.2解释代码 解释性注释通常用于解释复杂、敏感的代码块。在这些场合他们能派上用场,但通常正是因为代码含混不清,才体现出这类注释的价值。如果代码过于复杂而需要解释,最好是改进代码,而不是添加注释。使代码清晰后再使用概述性注释或者意图性注释。 2.3代码标记 标记性注释并非有意留在代码中,他提醒开发者某处的工作未做完。在实际工作中,我们经常会使用这些注释作为程序骨架的占位符,或是已知bug的标记。 2.4概述代码 概述性注释是这么做的:将若干代码行的意思以一两句话说出来。这种注释比重复性注释强多了,因为读者读注释能比读代码更快。概述性注释对于要修改你代码的其他人来说尤

注释要求

一、注释体例及标注位置 文献引证方式采用注释体例。 注释放置于当页下(脚注)。注释序号用①,②,③……标识,每页单独排序。正文中的注释序号统一置于包含引文的句子(有时候也可能是词或词组)或段落标点符号之后。 二、注释的标注格式 (一)非连续出版物 1.著作 标注顺序:责任者与责任方式/文献题名/出版地点/出版者/出版时间/页码。 责任方式为著时,“著”可省略,其他责任方式不可省略。 引用翻译著作时,将译者作为第二责任者置于文献题名之后。 引用《马克思恩格斯全集》、《列宁全集》等经典著作应使用最新版本。 示例: 赵景深:《文坛忆旧》,北新书局,1948,第43页。 谢兴尧整理《荣庆日记》,西北大学出版社,1986,第175页。 蒋大兴:《公司法的展开与评判——方法·判例·制度》,法律出版社,2001,第3页。 任继愈主编《中国哲学发展史(先秦卷)》,人民出版社,1983,第25页。 实藤惠秀:《中国人留学日本史》,谭汝谦、林启彦译,香港中文大学出版社,1982,第11-12页。 金冲及主编《周恩来传》,人民出版社、中央文献出版社,1989,第9页。 佚名:《晚清洋务运动事类汇钞五十七种》上册,全国图书馆文献缩微复制中心,1998,第56页。 狄葆贤:《平等阁笔记》,有正书局,出版时间不详,第8页。 《马克思恩格斯全集》第31卷,人民出版社,1998,第46页。 2.析出文献

标注顺序:责任者/析出文献题名/文集责任者与责任方式/文集题名/出版地点/出版者/出版时间/页码。 文集责任者与析出文献责任者相同时,可省去文集责任者。 示例: 杜威·佛克马:《走向新世界主义》,王宁、薛晓源编《全球化与后殖民批评》,中央编译出版社,1999,第247-266页。 鲁迅:《中国小说的历史的变迁》,《鲁迅全集》第9册,人民文学出版社,1981,第325页。 唐振常:《师承与变法》,《识史集》,上海古籍出版社,1997,第65页。 3.著作、文集的序言、引论、前言、后记 (1)序言、前言作者与著作、文集责任者相同。 示例: 李鹏程:《当代文化哲学沉思》,人民出版社,1994,“序言”,第1页。 (2)序言有单独的标题,可作为析出文献来标注。 示例: 楼适夷:《读家书,想傅雷(代序)》,傅敏编《傅雷家书(增补本)》,三联书店,1988,第2页。 黄仁宇:《为什么称为“中国大历史”?——中文版自序》,《中国大历史》,三联书店,1997,第2页。 (3)责任者层次关系复杂时,可以通过叙述表明对序言的引证。为了表述紧凑和语气连贯,责任者与文献题名之间的冒号可省去,出版信息可括注起来。 示例: 见戴逸为北京市宣武区档案馆编、王灿炽纂《北京安徽会馆志稿》(北京燕山出版社,2001)所作的序,第2页。 4.古籍 (1)刻本 标注顺序:责任者与责任方式/文献题名(卷次、篇名、部类)(选项)/版本、页码。 部类名及篇名用书名号表示,其中不同层次可用中圆点隔开,原序号仍用汉字数字,下同。页码应注明a、b面。

cocos2d-x_Win32_Android_环境配置手册

COCOS2D-X配置手册(Win32、Android) 编制:刘勤熙李育 完成日期:2012-1-19

目录 1. 引言 (3) 2. cocos2d-x Win32环境配置 (3) 2.1 win32开发环境配置 (3) 2.1.1 Visual Studio 2008 (3) 2.1.2 cocos2d-x (3) 2.1.3 (可选)Visual Assist X (3) 2.1.4 (可选)doxygen (4) 2.2 Win32 可执行文件生成过程 (5) 2.3 常见问题总汇 (7) 3 cocos2d-x Android 环境配置 (8) 3.1 android开发环境配置 (8) 3.1.1 Eclipse 3.7.1 (8) 3.1.2 Eclipse ADT插件 (8) 3.1.3 Eclipse CDT插件 (10) 3.1.4 AndroidSDK (12) 3.1.5 AndroidNDK (13) 3.1.6 Cygwin (13) 3.2 Android可执行文件生成过程 (15) 3.2.1 前期准备 (15) 3.2.2 生成Android空工程 (15) 3.2.3 交叉编译so文件 (15) 3.2.4 生成android系统可用的apk文件 (16) 3.3 常见问题汇总 (18) 4其它 (18)

1.引言 略…… 一切需要的软件及插件版本号以笔者使用为准,其它版本号的软件及插件不保证有效。文件下载地址在2012-1-19确认有效,不保证因各种原因导致下载地址失效。 开发平台操作系统为win32(WindowsXP、WindowsVista、Windows7) 2.cocos2d-x Win32环境配置 2.1 win32开发环境配置 2.1.1 Visual Studio 2008 安装VisualStudio2008,默认安装即可,如果是自定义安装,VisualC++组件应选中。 2.1.2 cocos2d-x 1. 下载cocos2d-x引擎最新版 官方下载地址为:https://www.sodocs.net/doc/f13937216.html,/p/cocos2d-x/downloads/list (当前使用版本为cocos2d-1.0.1-x-0.10.0.zip) 2.将cocos2d-1.0.1-x-0.10.0.zip解压缩至硬盘任意目录(建议 D:\Work7\cocos2d-1.0.1-x-0.10.0\, 因为现在wophone的开发环境必须安装至此, 以下以此为例) 3. 如果想查看引擎源代码,可以在.\cocos2dx\proj.win32目录下找到代码配置文件。 2.1.3 (可选)Visual Assist X 用来提高VisualStudio2008的工作效率, 可以安装此工具。 安装支持VS2008版本的任意一版,无需配置。本软件是收费软件,需要注册。 技巧:如果不想让VAX对注释中的拼写进行校正(即去掉单词下面的波浪线提示),可以选择Visual Assist X Option,进行如下配置:

关于Linux下中文乱码的完整解决方案

关于Linux下中文显示为乱码的完整解决方案Linux,作为一款免费的操作系统,相对于高额费用的Windows系列操作系统,有着更强的优势,所以,许多人也都开始学习Linux操作系统的知识。但是,由于Windows 系列操作系统还是当今社会的主流,所以,人们少不了在Windows和Linux系统之间进行文件的传输。 但是一个新问题出现了,那就是中文乱码问题,这个问题困扰着无数的Linux用户,尤其是Linux的初学者,对于这个问题相当的头疼。 主要问题如下: 1、ssh中,中文显示为乱码:在Wind ows 系统下,用ssh远程连接Linux系统,对于在Linux下显示正常的中文,在ssh中却显示为完全无法识别的乱码字符。 2、中文传输乱码:把Wind ows中的中文文件传输到Linux操作系统中,原本在Wind ows下显示正常的文件,到了Linux系统下,成了无法识别的乱码。 分析其原因,是因为Linux和Wind ows系统下,所用户的字符集不同,Linux系统使用的是Unicod e字符集,而Wind ows使用的是GB字符集。所以,在网上出现了两种解决方案: 方法一:使用Putty代替secure shell client(ssh):在Putty终端设置中,修改wind ow-〉Translation中的Received data assumed to be in which character set值为Linux 中的字符集UTF-8,再连接Linux,

发现这时,Linux中的中文可以正常显示了。 但是一个新问题出现了,把Wind ows中的文件上传了Linux 中,原本在Wind ows下显示正常的中文文件,现在却成了乱码。 所以,这个方法无法彻底解决乱码问题。 方法二:修改Linux默认字符集,把Linux的默认字符集修改为和Wind ows中的字符集一致的GB18030或GB2312,重启Linux系统后,再用ssh终端连接,这时,修改字符集后的中文文件都已经能正常显示,而且,从Wind ows中新上传的中文文件也能正常显示了。这个方法不错。 但是,Linux系统在安装时,产生的中文字符(中文文件夹名、中文文件名、中文文件)在新的字符集下,却又全都显示成了乱码。 有什么方法可以彻底解决乱码问题,使在Linux系统下,所有的中文字符都可以正常显示呢? 本人综合了网上的各种解决方案,经过多次实验,终于找到了一个比较完整的解决方案,步骤如下: 第一步:用英文安装Linux系统:在安装Linux系统时,采用默认的英文安装,而不要使用中文。 第二步:修改字符集:在Linux系统安装成功以后,修改系统的默认字符集,操作如下: 在Fedora Linux系统中,编辑/etc/sysconfig/i18n文件,修改LANG 值为zh_CN.GB2312或zh_CN.GB18030,保存退出。 在OpenSuSE Linux系统中,编辑/etc/sysconfig/language文件,

网页中文乱码完美解决方案

网页中文乱码 既然后面charset设置为gb2312,那么你打开这个网页,然后另存,保存的时候记得把编码改成gb2312,不然的话charset就会误导浏览器,这样就会乱码了。 2.php编网页出现乱码,我把编码改成utf-8 前台显示正常了,但是有东西输入到数据库再提取出来还是不正常 3.apache+php+mysql 为何会出现乱码 我们在做PHP项目的时候,经常会遇到中文乱码的问题,有时候编码问题还导致MYSQL的报错。中文乱码总共有三个原因 1:APACHE服务器设置导致乱码 2:PHP,或者HTML页面编码导致中文乱码 3:MYSQL数据库的表以及字段编码导致中文乱码 我们分别从这三个部分来探究PHP程序设计中的编码问题 在这之前我们要了解一些基本理论: 1、文件编码 每个文件在保存的时候都可以选择以什么编码保存,例如用WINDOWS的记事本创建一个文件可以选择ANSI 以及UTF8等等编码。我们选择了什么编码该文件就以这种编码方式保存在硬盘上。读取该文件数据的时候也会指定一种编码来打开,如果指定的编码与文件保存的时候的编码不一样的话就会出现乱码 2、HTML的编码 在网页头部一般有这样一个 区域 这个的意思是让客户端知道,接下来输出的是html代码(text/html),并且以下输出的内容都将是utf-8编码的。如果我们用记事本创建一个HTML文件该文件包含 但是在保存的时候却以ANSI编码格式保存,那么我们用浏览器打开这个文件时,浏览器看见META 行的UTF8编码设置后就将文件以UTF8格式输出,而文件本来是ANSI编码,这样便出现了中文乱码。 一:APACHE服务器编码 在APACHE配置文件中有一行是编码的设置默认的是AddDefaultCharset ISO-8859-1,大部分人认为应该将这句改为AddDefaultCharset UTF-8 。而蜗牛认为这是误人子弟。这项配置是告诉APACHE服务器选用什么样的编码来输出WEB页面(这样做会忽略,HTML页面中的页面编码的设置EG:),如果我们建立一个GB2312的页面就会出现中文乱码。所以最好的方法是将AddDefaultCharset ISO-8859-1这一项注释掉#AddDefaultCharset 二:PHP编码问题 php最终生成的是文本文件,而他要从数据库中取出文本数据,还要把文本数据写到数据库中。由于MYSQL并不知道PHP发送给他的是什么编码的数据,所以需要客户端PHP告诉他存取的是什么编码的数据。然后MYSQL会自动将PHP传送来的数据转换成目标编码格式的

High-speed Charting Control--MFC绘制图表(折线图、饼图、柱形图)控件

High-speed Charting Control--MFC绘制图表(折线图、饼图、柱形图)控件

介绍 对于我之前的一个项目,我需要在图表控件上显示连续的数据流。我决定开发自己的控件,因为我找不到任何可以提供所需灵活性的自由软件控件。其中一个主要的限制是,控件必须绘制大量的数据,并能够迅速显示它(在Pocket PC上)。控件能够通过仅绘制新的数据点而不是完整的数据序列来做到这一点并且图表还能够显示静态数据。 这种控件是我长时间工作的结果,而且费尽周折地为了提供足够的灵活性来供需要它的人使用。对于使用者反馈我表示由衷的感谢:一个邮件,留言板中的一一句话或只是对本文评级。当我不知道是否还有人使用它时,我就没有必要维护这个控件了。 免责声明 这个控件是我花费很长时间的开发的结果,因此我对代码的使用放置一些小条件: 该代码可以以编译的形式用于任何非商业和商业目的。代码可以被重新开发,只要它提供作者名字和完整的免责声明。更改源代码需要得到作者的同意。 此代码不提供任何安全保证。我不会对使用此代码造成的损失负责。使用它需要自己承担风险。 This code may be used for any non-commercial and commercial purposes in a compiled form. The code may be redistributed as long as it remains unmodified and providing that the author name and the disclaimer remain intact. The sources can be modified with the author consent only. This code is provided without any guarantees. I cannot be held responsible for the damage or the loss of time it causes. Use it at your own risks.

url中文乱码解决大全

使用tomcat 时,相信大家都回遇到中文乱码的问题,具体表现为通过表单取得的中文数据为乱码。 一、初级解决方法 通过一番检索后,许多人采用了如下办法,首先对取得字符串按照 iso8859-1 进行解码转换,然后再按照gb2312 进行编码,最后得到正确的内容。示例代码如下: http://xxx.do?ptname='我是中国人' String strPtname = request.getParameter("ptname"); strPtname = new String(strPtname.getBytes("ISO-8859-1"), "UTF-8"); String para = new String( request.getParameter("para").getBytes("iso8859-1"), "gb2312"); 具体的原因是因为美国人在写tomcat 时默认使用iso8859-1 进行编码造成的。 然而,在我们的servlet 和jsp 页面中有大量的参数需要进行传递,这样转换的话会带来大量的转换代码,非常不便。 二、入门级解决方法 后来,大家开始写一个过滤器,在取得客户端传过来的参数之前,通过过滤器首先将取得的参数编码设定为gb2312 ,然后就可以直接使用getParameter 取得正确的参数了。这个过滤器在tomcat 的示例代码 jsp-examples 中有详细的使用示例, 其中过滤器在web.xml 中的设定如下,示例中使用的是日文的编码,我们只要修改为gb2312 即可 1.Set Character Encoding 2.filters.SetCharacterEncodingFilter 3. 4.encoding 5.EUC_JP 6. 7.

Doxygen使用教程(个人总结)

简介Doxygen 一.什么是Doxygen? Doxygen 是一个程序的文件产生工具,可将程序中的特定批注转换成为说明文件。通常我们在写程序时,或多或少都会写上批注,但是对于其它人而言,要直接探索程序里的批注,与打捞铁达尼号同样的辛苦。大部分有用的批注都是属于针对函式,类别等等的说明。所以,如果能依据程序本身的结构,将批注经过处理重新整理成为一个纯粹的参考手册,对于后面利用您的程序代码的人而言将会减少许多的负担。不过,反过来说,整理文件的工作对于您来说,就是沉重的负担。 Doxygen 就是在您写批注时,稍微按照一些它所制订的规则。接着,他就可以帮您产生出漂亮的文档了。 因此,Doxygen 的使用可分为两大部分。首先是特定格式的批注撰写,第二便是利用Doxygen的工具来产生文档。 目前Doxygen可处理的程序语言包含: ?C/C++ ?Java ?IDL (Corba, Microsoft及KDE-DCOP类型) 而可产生出来的文档格式有: ?HTML ?XML ?LaTeX ?RTF ?Unix Man Page 而其中还可衍生出不少其它格式。HTML可以打包成CHM格式,而LaTeX可以透过一些工具产生出PS或是PDF文档。 二.安装Doxygen ? 1.1 安装 Doxygen 1.7.4(Windows) ? 1.2 安装 graphviz 2.28.0(Windows)

graphviz 是一个由AT&T实验室启动的开源工具包,用于绘制DOT语言脚本描述的图形。Doxygen 使用 graphviz 自动生成类之间和文件之间的调用关系图,如不需要此功能可不安装该工具包。 1.3 安装 Windows Help Workshop 1.32 Doxygen 使用这个工具可以生成 CHM 格式的文档。 三.Doxygen的配置 Doxygen 产生文档可以分为三个步骤。一是在程序代码中加上符合Doxygen所定义批注格式。二是使用Doxywizard进行配置。三是使用Doxygen来产生批注文档。Doxygen 1.7.4主界面如下图 1所示。 说明:1,Doxygen 工作目录,就是用来存放配置文件的目录。 2,递归搜索源文件目录需要选上。 选择wizard 标签下的Output Topics 相关配置说明如下图 2所示。

Flash中出现中文乱码的解决办法

Flash中出现中文乱码的解决办法 在编辑flash文件中加载了非Unicode 编码的外部txt文本文件时,有些中文就不能正常显示。 解决办法: 用鼠标右键单击舞台上的元件,从弹出的快捷菜单中选择“动作”选项,打开动作脚本编辑面板,键入下面脚本https://www.sodocs.net/doc/f13937216.html,eCodepage = true;脚本解释:显示中文字符的语句,使外部文本文件中的中文字符能正常显示。否则只能显示英文字符,中文字符为乱码。例子:on (release) {loadVariablesNum("chem.txt", 0);https://www.sodocs.net/doc/f13937216.html,eCodepage = true;} 说明: 对于作为外部文件包含或加载的文本(使用#include 命令,loadVariables() 或getURL 动作,或LoadVars 或XML 对象),保存这些文本文件时必须使用Unicode 对其进行编码,这样Flash Player 才能将其识别为Unicode。若要使用Unicode 对外部文件进行编码,请在支持Unicode 的应用程序(例如,Windows 2000 上的“记事本”)中保存这些文件。 如果包含或加载了非Unicode 编码的外部文本文件,则应将https://www.sodocs.net/doc/f13937216.html,eCodepage 设置为true。在加载数据的SWF 文件的第一帧中,在最前面添加以下代码(第一行代码): https://www.sodocs.net/doc/f13937216.html,eCodepage = true; 如果有这一行代码,Flash Player 将使用运行Flash Player 的操作系统

的传统代码页来解释外部文本。对于英文Windows 操作系统,该代码页通常为CP1252;对于日文操作系统,该代码页通常为Shift-JIS。如果将https://www.sodocs.net/doc/f13937216.html,eCodepage 设置为true,Flash Player 6 和更高版本处理文本的方式与Flash Player 5 相同。(Flash Player 5 在处理文本时,将所有文本都视为按运行播放器的操作系统的传统代码页编码的文本。) 如果将https://www.sodocs.net/doc/f13937216.html,eCodepage 设置为true,应注意您的外部文本文件中使用的字符必须包含在运行播放器的操作系统的传统代码页中,这样才能显示该文本。例如,如果您加载了一个包含中文字符的外部文本文件,这些字符在使用CP1252 代码页的系统上将无法显示,因为该代码页不包含中文字符。 若要确保所有平台上的用户都能查看您的SWF 文件中使用的外部文本文件,应使用Unicode 对所有外部文本文件进行编码,并将https://www.sodocs.net/doc/f13937216.html,eCodepage 设置保留为其默认设置false。这样,Flash Player 6 和更高版本将按Unicode 解释文本。

mysql中文乱码解决

转载:Mysql中文乱码的解决方法 第一种方法,很精辟的总结: 经常更换虚拟主机,而各个服务商的MYSQL版本不同,当导入数据后,总会出现乱码等无法正常显示的问题,查了好多资料,总结出自己的一点技巧: WINDOWS 下导入应该这样 使用MYSQL的命令 在DOS 命令下进入mysql的bin目录下,输入mysql -uroot -p密码数据库名称<要恢复的数据库, 例如我们要把D盘的一个名称为test.sql的数据库恢复到本地的test2这个数据库,那么就这样: mysql -uroot -p密码test2以前的国外主机用的Mysql是4.x系列的,感觉还比较好,都无论GBK和UTF-8都没有乱码,没想到新的主机的Mysql是5.0版本的,导入数据后,用Php读出来全是问号,乱码一片,记得我以前也曾经有过一次切换出现乱码的经验,原因肯定是Mysql版本之间的差异问题。 只好查资料,发现了一个解决方法,就是在mysql_connect后面加一句SET NAMES UTF8,即可使得UTF8的数据库消除乱码,对于GBK的数据库则使用SET NAMES GBK,代码如下: $mysql_mylink = mysql_connect($mysql_host, $mysql_user, $mysql_pass); mysql_query("SET NAMES 'GBK'"); 数据库字符集为utf-8 连接语句用这个 mysql_query("SET NAMES 'UTF8'"); mysql_query("SET CHARACTER SET UTF8"); mysql_query("SET CHARACTER_SET_RESULTS=UTF8'");

相关主题