crontab定时任务中文乱码问题

crontab启动的任务没有获取系统的环境变量,导致中文乱码

解决办法:

在执行的脚步中添加编码方式或者添加对应的环境变量

如:

1、/usr/bin/java -Dfile.encoding=UTF-8 -jar ALDTool.jar (未测试)

2、在脚本开头增加:

export LANG="en_US.UTF-8"

实例:

环境变量:locale的设定LC_ALL为 “en_US.UTF-8"  注:设定了LC_ALL就不用设置其他的了,他会强制覆盖掉LC_*.设置部分LC_*和LANG,没有设置的LC_*采用的是LANG的值。

crontab 执行:

#export LANG="en_US.UTF-8"

#!/bin/bash

echo "汉字!"|mail -s " 标题" ‘[email protected]123.com‘

汉字乱码,没有读取到环境变量中的LC_ALL值;

export LANG="en_US.UTF-8"

#!/bin/bash

echo "汉字!"|mail -s " 标题" ‘[email protected]123.com‘

时间: 2024-11-06 04:11:45

crontab定时任务中文乱码问题的相关文章

【转】crontab定时任务中文乱码问题

转载:http://blog.163.com/[email protected]/blog/static/1216503422012135511740/ 手动执行都很正常的的脚步,添加到定时任务中一直执行失败,日志文件全是乱码 经过多方查证终于找到了原因! crontab启动的任务没有获取系统的环境变量,导致中文乱码 解决办法:    在执行的脚步中添加编码方式或者添加对应的环境变量 如: 1./usr/bin/java -Dfile.encoding=UTF-8 -jar ALDTool.ja

crontab定时任务以及其中中文乱码问题

一.小例子 1.写个测试文件 2.将文件权限变为可执行文件 3.在crontab文件中写定时任务 格式: 分/时 * * * 用户名 可执行文件路径 >> log文件路径 2>&1 */1 * 表示每隔一分钟就执行一次 4.执行结果 至此. 二.中文乱码问题解决 根本原因是: Cron执行时和手动执行的环境变量不一样. 在要定时执行的脚本开头增加:export LANG="en_US.UTF-8" 如果还是不行的话, 就在要执行的脚本前面加上了 .  /etc

crontab执行脚本中文乱码,手动执行没有问题

crontab执行脚本中文乱码,手动执行没有问题 产生原因:       这是因为Unix/Linux下使用crontab时的运行环境已经不是用户环境了,因此原本用户下的一些环境变量的设置就失效了.例如原来用户环境变量设置的是GB2312,但是使用crontab运行时的环境变量就可能是ISO8859-1.   解决方法:       首先执行命令echo $LANG,假设输出是en_US.UTF-8       然后在脚本中增加一行export LANG=en_US.UTF-8

centos6.7下安装mysql5.6.22同时解决中文乱码问题

1.下载 http://dev.mysql.com/downloads/mysql/ 或者使用wget下载: wget http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-5.6.22-1.el6.i686.rpm-bundle.tar 2.安装 2.1.  检测是否已经安装了mysql rpm -qa | grep mysql 如果已经安装了,将其卸载,如: rpm -e --nodeps  mysql-libs-5.1.71-1.el6.x8

XShell连接CentOS 7.2显示中文乱码问题的解决方法

背景 使用U盘往Windows主机.Linux主机传文件还是经常的事,但有时候文件名有中文, 传到Linux机器会有乱码,选择起来也很麻烦,最近刚好遇到,写下解决方法. 环境 Linux [[email protected] ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) [[email protected]-base ~]# echo $LANG en_US.UTF-8 [[email protected]-ba

[oracle]解决centos 7下oracle的中文乱码问题

首先在形成中文乱码的原因是由于字符集不统一导致的,不同的字符集在转换的过程中必然要出现乱码,当然不排除可以转换.所以要解决中文乱码问题,思路是将输入.存储.显示等流程中涉及到字符集都统一为一种,对于oracle首先必须满足的先决条件是要服务端和客户段的字符集统一,若还不能解决问题,同时还要将系统的字符集与之统一,甚至导入或输入数据所使用的字符集统一. 看了网上的一些资料后,都说修改服务器的字符集风险比较大,确实,测试开发用还好说,假若是上线项目的服务器,那修改服务器字符集所带来的后果是不堪的,废

Oracle数据库中文乱码问题

最近碰到Oracle乱码问题,刚开始甚是头疼,以前在合肥出差的时候,这种问题也碰到过,当时直接抛给了“乌压压一片”(一个搞数据的同事儿),这次没办法躲过,只好硬着头皮上.虽然我这次碰到的是Oracle乱码问题中的一个,但是我决定将这个乱码问题整理清楚(不整清楚,就觉得身边有个定时炸弹,怕下次整数据库的时候会突然又爆炸). 解决这个问题的关键在于理解字符集的概念,所以在正文开始之前,有必要先提一下字符集的相关知识!(这部分知识,对于解决j2ee中文参数传递过程中出现的乱码,也非常具有参考意义) 一

linux下birt 图表中文乱码问题

birtChart 在linux下中文乱码的问题是Java虚拟机找不到中文字库字体文件造成的. 步骤: 1.把.bash_profile中的export LANG=zh_CN.GB2312修改为: export LANG=zh_CN.GB18030.因为gb2312不支持一些特殊的汉字. 2.在在生成的chart图表的XML Source里修改字体:把SansSerif修改为SimSun. 3.找到一个能在linux下使用的中文字体,可以是Windows 7下的c:\windows\fonts\

source insight3.5中文乱码解决方案

source insight3.5中文乱码,网上看别人说改变宽字体.宋体等方法都不起效.根本原因是,source insight 3.5 不支持Unicode编码,所以导致中文的乱码,将文件转为gb2312编码即可正常显示. 转码命令: iconv -c  -f utf-8 -t gb2312  utf8FileName  >>  newGb2321FileName