我们在写asp程序时,乱码问题经常困扰我们,文件编码,页面编码,数据库乱码,等等

虽然我暂时还不明白为什么会出这么多问题,但总算能够折腾出来,现在分享一下我平时的解决办法,以后搞懂了再将原因补上。

asp文件统一编码为UTF-8,然后在页面顶上填上如下的页面申明

<%@ CODEPAGE=65001 %> <% Response.CodePage=65001%> <% Response.Charset="UTF-8" %>

css文件统一编码为UTF-8,最好不用中文注释。

js文件也统一编码为UTF-8。

这样应该不会再出现乱码问题了。

 今天在写jquery加.net的ajax中,插入数据库的中文乱码,将我的解决方法做个笔记。

在web.config中 设置:

<globalization requestEncoding="utf-8" responseEncoding="utf-8" fileEncoding="GB2312"/>

这样的话,页面是UTF-8解码,又支持中文,乱码问题解决了

网上也有另外一种方法,我还没有试过

在数据插入的SQL语句中加 N

string strSql = "insert into Article_body(articleTitle,articleContent,articleSummary,articleIsTop,articleAllowReply,articleIsHide)values(N’"+articleTitle +"’,N’"+articleContent+"’,N’"+articleSummary+"’,@articleIsTop,@articleAllowReply,@articleIsHide) ";

 

 

大家在linux里面经常遇到在网页中打开flash中文乱码吧,或者游戏或其他flash中文显示乱码吧

解决办法:
方法一:

用下命令删除字库顺序的配置文件就可以了

sudo rm /etc/fonts/conf.d/49-sansserif.conf

方法二:

sudo gedit /etc/fonts/conf.d/49-sansserif.conf

找到倒数第4行的 sans-serif 替换为 文泉驿正黑,即可解决。

大家往往在向自己的博客或者网站加上百度或者google的搜索框的时候经常会看见乱码。主要是用中文搜索的时候,我用的是zblog,在加百度和google搜索框都出现过这个问题。

现在说说我的解决方法:

1、如果是搜索按钮几个字乱码,那么很可能是你的js文件不是用的UTF-8编码,因为windows的记事本默认的就不是,所以很多人出现过这个问题,解决方法是下载一个记事本代替windows默认的记事本,我用的是notepad++,功能强大不说,格式还可以自己选。

2、输入中文搜索时出现乱码

这个问题的原因是你的网站的编码和百度,google编码不一样,google adsense可以自己选择编码,一般选UTF-8就不会出问题,百度的可以自己加几句说明搜索代码代表的是中文的。(下面的代码中有注释)


互联网 ourys.com

这是我的百度搜索框,如果你想用js调用,将html转化为js,http://www.ourys.com/ad/baidu.js,这是我的网站的百度js调用,我改了一下风格,去掉了百度logo,下面的是html代码,你可以到http://www.hao123.com/haoserver/jstohtm.htm这里转为js。

 

<SCRIPT language=javascript>
function g(formname) {
var url = "http://www.baidu.com/baidu";
if (formname.s[1].checked) {
 formname.ct.value = "2097152";
}
else {
 formname.ct.value = "0";
}
formname.action = url;
return true;
}
</SCRIPT>
<form name="f1" onsubmit="return g(this)">
<table bgcolor="#000000" style="font-size:9pt;">
<tr height="60">
<td>
<input name=word size="30" maxlength="100">
<input type="submit" value="百度搜索"><br>
<input name=tn type=hidden value="bds">
<input name=cl type=hidden value="3">
<input name=ie type=hidden value="UTF-8">   //说明是中文
<input name=oe type=hidden value="UTF-8">   //说明是中文
<input name=hl type=hidden value="zh-CN">    //说明是中文
<input name=ct type=hidden>
<input name=si type=hidden value="www.ourys.com">
<input name=s type=radio> 互联网
<input name=s type=radio checked> www.ourys.com</td></tr></table>
</form>
 

本文主要解决Conky新手配置conky时遇到的几个重要问题,主要是网上一些conky配置忽略的地方。

主要解决中文显示,邮件检测,天气检测等问题,保证你看过之后能自己配置非常漂亮的conky。

安装conky: sudo apt-get install conky
Conky 安装后不会为当前用户创建配置文件,而是使用系统级默认配置文件,这时候需要使用下列命令手动生成当前用户的配置文件:
在终端下输入:zcat /usr/share/doc/conky/examples/conky.conf.gz > ~/.conkyrc
然 后打开主文件夹,显示隐藏文件(Ctrl+h),打开.conkyrc文件,编辑里面的内容,再在终端输入conky启动conky.通过系统监视器结束conky进程和 终端启动conky.可以反复调试conky.大家可能在网上找了许多配置文件,但是中文不能正常显示,什么邮件检测和天气等也不能正常显示。

1、中文乱码

中文乱码的原因是网上提供的很多conky配置文件用的是他们电脑里面的字体,你没有安装那个字体当然乱码了,你看一下配置文件中所有有font的标签,后面跟的都是字体名。什么天气呀,一些特殊的图案都是由字体表示出来来的。所以你要中文显示正常,没有字体怎么行呢。解决方法很简单,要么改成你电脑里面有的字体,或者下载一些字体,放在主目录下的.font里面(该文件夹是隐藏的,Ctrl+h查看),最好大家找到的conky的配置文件带有字体下载的。

2、邮件检测,天气检测

这两个的原理是在conky里面调用shell脚本,所以你要这些东西显示正常,当然需要这些脚本,而且要有执行权限,要经过正确的引用,最主要的是你的电脑必须安装了这些shell命令的运行环境,比如很多邮件检测用到了一些邮件软件,你要能检测邮件,起码你要安装这些邮件软件。看了这些你可能会说,我要是写其他的脚本呢?我告诉你,你已经得道了,你要你shell够牛,想配置个其他的什么脚本,那还不是小意思。

我这里就不再贴conky的配置文件了,网上大把的是,自己搜搜。下面贴一下常用的conky说明:

首先,Conky的配置文件分为两个部分,第一部分对Conky的全局属性做设定,比如字体、嵌入桌面等等;第二部分是定义Conky的输出格式,也就是Conky呈现在桌面上的样式。

在全局属性的部分,重要的参数有:

1、background no:是否嵌入桌面,“no”表示不嵌入;“yes”表示嵌入。

2、out_to_console no:是否输出结果到终端,主要在判断Conky在哪里出错时使用,一般情况下为“no”即可。

3、use_xft yes:是否使用xft字体,一般为“yes”。

4、xftfont Monospace:size=8:设置一个默认字体,在下面的样式定义段可以特别定义使用别的字体,如不特别指定,则使用默认字体;这里最好选则一个等宽中文字体,比如我这里选的就是“Monospace”,字体大小为“8”。

5、update_interval 1:刷新时间。Conky需要每隔一段时间读取一次要监视的系统状态并把结果输出到屏幕上,设定的时间间隔越短,监控的实时性越好,但系统负担也越重;间隔时间越长则系统负担越轻,但是监控的实时性越差。我这里设定为1秒。

6、minimum_size 280 5:设定Conky的边界范围,最小宽度为280像素,最小高度为5像素,一般没有用,我这里没有使用,前面插入“#”号表示注释掉。

7、maximum_width 308:Conky边界范围最大宽度308像素,很多时候用这个参数来限制Conky的边界。

8、default_color white:设定Conky默认颜色,在样式定义中可以设定使用任何一种颜色,如果没有设置则采用缺省的颜色。这里设定缺省颜色为“white”,也可以用16位值表示的颜色值,如“#0A0F00”。

9、gap_x 10
gap_y 10:以上两条设定Conky输出范围距离屏幕边界的像素数量,最小为10像素。
alignment top_right:设定Conky输出范围在屏幕上的位置,“top_right”表示右上方,依此类推,“bottom_left”是左下角。

10、uppercase no:如果值设为“yes”则所有输出的文字都变成大写字母。

下面介绍一下输出样式定义区:

Conky样式定义的语法和编写网页有点相似,首先,以字符“TEXT”标志样式定义的开始。Conky样式的定义以行为单位,每一行对应Conky输出到屏幕时的一行。

每一行可以分为样式属性、文字和元素。其中样式属性和元素都以“$”开头,并包含在“{}”里面,“${}”应该放在应用目标的前面。

样式属性如颜色、字体大小、停靠位置等,其中,颜色的定义格式为:

${color #5000a0}

其中的16位值色可以用X中定义的颜色名称代替,如:

${color snow}

你可以在/etc/X11/rgb.txt中找到全部颜色的列表。

字体属性的定义格式如下:

${font Monospace:style=Bold:size=10}

上面三个字体属性中任何一个不设定则使用上面定义的默认值。

${alignr}表示以该参数定义的元素向右对齐,${alignl}表示左对齐,${alignc}表示居中对齐。

需要注意的是,${}中定义的颜色和字体属性将一直影响到Conky配置文件的最后,即如果你在前面定义了第一行的颜色为“white”,那么以后各行的颜色都是白色。所以原则上你需要为每一行甚至每一行的各个元素设定颜色或者字体属性。

文字即Conky显示在屏幕上的文字,它不需要特别的定义,你希望Conky显示什么文字就添加什么文字即可。

元素即呈现在屏幕上的那些进度条、你要监视的系统状态等等,格式为:

${监视目标 参数}

如果没有参数,也可以直接使用

$监视目标

的格式。

下面介绍一些常用的元素和其参数的格式:

1、time:采用strftime的参数格式,其参数有好几个,可以到这里查找适合自己的参数并布置其格式。如我这里设置为:

${color lightgrey}${font Monospace:style=Bold:size=8}${time %b%d日星期%a}${alignr}${time %p%l:%M:%S}

即输出字体为Monospace、字体大小为8像素、粗体、颜色为lightgrey,依次输出月、日、星期几,后面以12小时格式输出时间并向右对齐。

2、nodename:本机在网络上的名称。
sysname:如Linux。
kernel:内核版本。
machine:硬件系统类型,如i686。

3、stippled_hr:在本行余下的空间输出虚线,多用于分隔区块。

4、uptime:系统持续运行时间。

5、cpu:CPU实时占用百分比。
cpubar:CPU占用的进度条样式。
cpugraph:CPU占用的频谱图样式。该元素可以加两个颜色值作参数,实现颜色渐变:

${cpugraph 000000 5000a0}

6、mem:内存实时占用大小。
memmax:内存总量。
memperc:内存实时占用百分比。
swap、swapmax、swapperc是虚拟内存的相应参数。

7、processes:正在运行的进程数。
running_processes:活跃的进程数。

8、addr ppp0:显示ADSL拨号建立的连接的IP地址,“addr eth0”表示显示第一块网卡的IP地址。

9、offset 70:表示相对于当前位置向右偏移70像素。

10、downspeed eth0:第一块网卡下载数据的实

我的ubuntu升级到9.04后发现用gedit打开windows下的记事本文件中文出现了乱码,有人就因此换了编辑器。其实不用,检查发现只有中文出现了乱码,想到出现字体丢失的可能性非常小,于是看了一下gedit的默认编码,果然有问题,解决方法如下

1、终端输入gconf-editor调出gconf-edit在apps->gedit-2->preferences->encodings在右边的auto-detected中双击会弹出一个对话框,在那里加入一个GBK和GB2312,然后把这两个的优先级设置为最高(在下面点向上),问题轻松解决~~

2、临时的也可以gedit –encoding=GBK ~/.fcitx/config

进入你的音乐文件夹执行如下代码:
mid3iconv -e GBK *.mp3
或者用这个命令可以一次转换所有的mp3文件
find . -iname “*.mp3” -execdir mid3iconv -e GBK {} \;
有可能系统会提示 python-mutagen没有安装((archlinux下面叫做mutagen)。
sudo apt-get install python-mutagen
然后重新导入rhythmbox,OK!
mid3iconv 命令主要是将原来mp3音乐文件的ID3信息转换成了Unicode并用ID3v2的格式存回文件中。
ps
1.必要时有的命令请加sudo权限
2.改过后在windows中和mp3播放器中可能又是乱码了,注意。
3.相信现在大陆绝大多数能找到的 mp3 标签都是以 GBK/GB18030 编码,使用 -e gbk 来处理就够了,当然你也可以使用 -e gb18030 来处理。
4.-e gbk 参数是代表把 GBK 编码的标签转换为 Unicode 编码,本身是 Unicode 编码的就不转换。如果需要转换其他编码的文件可以自行修改,如改为 Big5。
5. 经测试,转换后为 2.4 版的 ID3v2,编码格式为 uft-16
6.不过它会同时用 Unicode 编码填满 D3v1, ID3v2, APEv2 标签,但是 ID3v1 又不支持中文的 Unicode 编码,所以转换后的 ID3v1 标签全是问号。所以最好加上 –remove-v1 参数,转换后删除 ID3v1 标签。
mid3iconv -e gbk –remove-v1 *.mp3

下面我们来分析下原因:(可以不看)
1、了解 mp3 标签类型和使用的编码

首先说 mp3 标签类型和编码,大家应该知道目前主要存在这几种标准,ID3v1, ID3v2 2.3, ID3v2 2.4, APEv2,ID3v1 只支持 ISO-8859-1 编码 (编码集参考),严格的说它是不支持中文的 (并不代表它不能储存中文信息,目前中文 mp3 的 ID3v1 标签都使用这个字段来储存 GBK/GB18030 编码的中文信息),而第二版 (ID3v2) 支持的格式增加了 utf-16,直到 2.4 版才开始支持 uft-8,但 ID3v2 标准没有统一标签内容的编码,例如 2.4 版的 ID3v2 你可以使用 ISO-8859-1 编码,也可以使用 utf-16/uft-8 这种 Unicode 编码格式。做得最好的是 APEv2,它不但有很好的扩展性,而且还把编码格式统一为 utf-8,这样一来只要支持 APEv2 读取的播放器播放带有 APEv2 标签的 mp3 就不会存在乱码问题。

2、了解各种播放器对 mp3 标签读取情况

接下来研究的就是各种播放器对这几种标准的标签支持程度,测试的播放器有:gnome 自带的 Rhythmbox 0.10.0, Listen 0.5, Banshee 0.12.1+dfsg-3, Quod Libet 0.24, Exaile! 0.2.8, GMPC 0.13.0, Audacious 1.2.2。

测试的方法很简单,用一个 mp3 文件,分别写入不同类型的标签 (排列组合下来共 20 多种),在 ID3v1 和 ID3v2 2.3/2.4 中分别使用不同的编码写入中文信息 (如 GBK 编码),然后用这些播放器去读取,得到其结果。从这次的测试结果来看,Rhythmbox 对各种 mp3 的标签支持最好,这主要归功于它支持 APEv2 标签的读取。而 Banshee 和剩下的播放器完全一样,都不支持 APEv2 的读取,这个就能很好的解释为什么一些 mp3 在 Rhythmbox 上正常,在其他播放器上就会乱码。原因是现在很多 mp3 为了兼容,都同时使用了 ID3v1 和 APEv2 标签,Rhythmbox 读取 ID3v1 一样会乱码,但它优先读取了 APEv2 标签,而 Banshee 这些播放器不支持 APEv2 就只能读取 ID3v1,当然会乱码了。

他们的共同特点就是,所依赖的 libid3tag 库完全按照 ID3 标准来读取标签内容。不管使用何种标准的标签,只要是读取以 Unicode 编码的中文内容,肯定没有问题,遇到 GBK/GB18030 编码的中文内容时,还是把它当成 ISO-8859-1 编码来读取,不乱才怪。

ps: Vista 上的 WMP 不支持 ID3v2 2.4 和 APEv2 标签的读取,但它很聪明不能读取就用文件名代替,千千静听支持全系列标签的读取,但不支持以 ID3v2 2.4 标准的写入,不知道即将发布的 5.0 有变化没有。foobar2000 v0.9.4.3 支持全系列标签的读取,默认使用 ID3v2 2.4 ( utf-8 ) 写入,不愧被誉为经典。