Linux下批量修改文件编码

[不指定 2006/11/22 23:24 | by ipaddr ]

假设需要将所有ipaddr目录下的php文件,编码从gb2312转到utf8

[code]

cd ipaddr
find ./ -type f -name "*.php"|while read line;do
echo $line
iconv -f GB2312 -t UTF-8 $line > ${line}.utf8
mv $line ${line}.gb2312
mv ${line}.utf8 $line
done

[/code]

上面脚本将当前ipaddr目录下的所有php文件,从gb2312转到utf8,原文保存为*.php.gb2312。

如果需要删除原来的gb2312文件,只需执行:

[code]

find ./ -type f -name "*.utf8" -exec rm -f {} \;

[/code]
绝大多数版本的linux支持ipv6,可惜IPV6离我们还是很远,增加它,不但会影响我们的系统性能,如果你使用linux做桌面的话,它还会严重影响你的上网速度。
我个人感觉就是DNS解析起来非常得慢。
以下是如何禁用它的支持。
原文请看这里:
http://www.mjmwired.net/resources/mjm-fedora-fc6.html#ipv6
Disable IPv6 Features
18 October 2006

FC6 has the most IPv6 support than in previous releases. Most likely you do not use IPv6. If you wish to eliminate the slight extra resources consumed by enabling IPv6, then you may do the following steps.

This may speed up your DNS lookup times when using the internet.

Disable IPv6 Networking Support
支持网络支持

Edit /etc/sysconfig/network. (A reboot will be required)

[mirandam@charon ~]$ sudo gedit /etc/sysconfig/network

Change:
NETWORKING_IPV6=yes

To:
NETWORKING_IPV6=no

Disable IPv6 Protocol Stack for Kernel
禁止IPV6的内核模块。

Edit /etc/modprobe.conf.

[mirandam@charon ~]$ sudo gedit /etc/modprobe.conf

Add the following 2 lines: (A reboot will be required)

alias net-pf-10 off
alias ipv6 off

Disable IPv6 Firewall
禁止IPV6的防火墙。

Stop ipv6 firewall:

[mirandam@charon ~]$ sudo /etc/init.d/ip6tables stop
Flushing firewall rules:                                   [  OK  ]
Setting chains to policy ACCEPT: filter                    [  OK  ]
Unloading ip6tables modules:                               [  OK  ]

Turn ipv6 firewall off during future usage:

[mirandam@charon ~]$ sudo /sbin/chkconfig --level 35 ip6tables off

SideBySide Error

[不指定 2006/11/22 16:52 | by ipaddr ]
自从安装SnagIt之后,系统的日志里经常会有条SideBySide的错误,经过搜索资料,发现SnagIt使用VC2005(VC8)开发,而Windowsxp,windows2003系统的机器,使用VC8开发的软件时,都可能会有这个错误.

VC2005编译出来的程序文件,采用了manifest方式来指定dll文件。对于win98、win2000系统,把exe文件和VC的 dll连接库放到一起就成了。对于winxp、win2003系统就要麻烦的多了,VC的连接库默认是被放到了winsxs目录下,结果造成在这些系统上,直接拷贝exe文件,往往是不能运行(找不到msvcr80.dll、mfc80.dll文件等),或者在事件日志中报错。

解决方式:
方式一、在目标系统上安装2005版vcredist_x86.exe。(上微软官方网站下载)

方式二、直接拷贝VS8目录下的VC \ redist \ x86 \  目录下的 Microsoft.VC80.MFC、Microsoft.VC80.CRT、Microsoft.VC80.MFCLOC几个文件夹,到exe所在的目录下,目录结构如下:
.\myapp.exe
.\myapp.dll
.\Microsoft.VC80.CRT\
.\Microsoft.VC80.MFC\
.\Microsoft.VC80.MFC\Microsoft.VC80.MFCLOC\
然后修改Microsoft.VC80.MFCLOC目录下的Microsoft.VC80.MFCLOC.manifest文件,将其中的version="8.0.50727.42",修改为version="8.0.50608.0"。


方式二的目录结构,在xp和2003下是没有问题的,但是在win98/win2000中,因为exe和dll不在同一目录下,就会出现找不到dll的问题。

有什么更好的解决呢?呵呵,国外的一个大牛找到一绝招:

方式三、
 1、首先编译myapp.exe的时候,在配置中,选择生成单独的manifest文件,如:myapp.exe.manifest。
 2、将myapp.exe、myapp.exe.manifest拷贝到一个目录下
 3、将Microsoft.VC80.MFC、Microsoft.VC80.CRT、Microsoft.VC80.MFCLOC几个目录下的文件,都拷贝到myapp.exe所在的目录下。
 4、将Microsoft.VC80.MFCLOC.manifest文件中的version="8.0.50727.42",修改为version="8.0.50608.0"。
 5、编辑myapp.exe目录下的所有 .manifest文件,将文件中的publicKey键值删除,一般是publicKeyToken="1fc8b3b9a1e18e3b"
 6、然后运行myapp.exe看看,嗯。


如果您使用的是Outlook, 当卸载了杀毒软件以后, 在启动Outlook时, 就会出现一条出错信息: 无法安装或装载加载项 ...\PAVExCli.DLL(这个是熊猫杀毒软件的, McAfee的是scanemal.dll".
开始安装的是熊猫杀毒的铂金版, 卸载以后, 安装了McAfee的VirusScan. 每次启动Outlook都会出现上面的提示. 在注册表里根本就找不到这个DLL文件名. 在卸载了VirusScan以后, 启动Outlook以后, 会出现2条信息. 一个是上面描述的, 另外一个是"scanemal.dll".

通过"scanemal.dll"这个关键字, 终于找到了解决办法:
要解决此问题,请从 Outlook 中删除 McAfee VirusScan 加载项:
1. 在 Outlook 中的工具菜单上,单击选项。
2. 单击其他选项卡,单击高级选项,然后单击加载项管理器。
3. 单击以清除 Exchange Scan(Exchange 扫描)复选框,单击确定,然后单击确定。(如果是Norton,去掉Norton的勾选即可)
4. 单击确定。

参考微软官方资料:
http://support.microsoft.com/?scid=kb;zh-cn;315046&spid=2559&sid=63.
分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]