东东东 陈煜东的博客

月份存档: 五月 2012

php和phpMyAdmin向mysql数据库插入中文数据导致乱码

发现用phpMyAdmin向MySQL数据库中插入中文数据乱码,通过php插入中文数据也是乱码。于是就查看数据库中对字符的处理。

我先向数据库中创建一个表webgrades

create table webgrades(班级 varchar(20) ,学号 varchar(11) ,姓名 varchar(10) ,成绩 int (3) );

然后用phpmyadmin向MySQL中插入中文数据乱码,其中SQL语句是这样的

insert into webgrades values("计算机2002.1","20020100101","王丽",95);

,在phpmyadmin中显示中文就出现 “????” 乱码了,怎么办呢?

查看该表的属性,在“操作”->”表选项”中看见”整理”这个下拉框中显示”latin1_swedish_ci”,发现不对,应该使用unicode码,于是将其改成”utf8_general_ci“。再次向表中插入数据,发现中文还是乱码。

查看“表结构”,发现每个字段后面的“整理”都为”latin1_swedish_ci”,于是将其更改成”utf8_general_ci“,再向表中插入中文数据,不显示乱码了。

在创建表的时候应该先添加字段的编码,在字段类型后面添加”CHARACTER SET utf8 COLLATE utf8_general_ci“,比如SQL语句

create table webgrades(
    班级 varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci,
    学号 varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci,
    姓名 varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci,
    成绩 int (3));

那么CHARACTER SET utf8 COLLATE utf8_general_ci是干什么用的呢?

如果表的结构指定了CHARACTER SET X和COLLATE Y,那么采用字符集X和校对规则Y。 如果指定了CHARACTER SET X而没有指定COLLATE Y,那么采用CHARACTER SET X和CHARACTER SET X的默认校对规则。 否则,采用默认的字符集和服务器校对规则。

可以看看MySQL Unicode Character Setsutf8_unicode_ci vs utf8_general_ci

声明:未经允许禁止转载 东东东 陈煜东的博客 文章,谢谢。如经授权,转载请注明: 转载自东东东 陈煜东的博客

本文链接地址: php和phpMyAdmin向mysql数据库插入中文数据导致乱码 – https://www.chenyudong.com/archives/insert-chinese-data-into-mysql-causing-garbled-via-php-and-phpmyadmin.html

分类: 网络

wordpress更改自定义rss feed地址

为自己的RSS地址做了一个改变,从之前的http://www.chenyudong.com/feed/变成了http://feed.chenyudong.com/,这样我改变RSS托管商,在域名中改变cname而不用改变我的RSS输出地址,就可以便捷的更换不同的RSS托管商了。

在此之前搜了很多改变RSS地址的文章,发现均不管用。这边文章发表时使用的是WordPress 3.3.1版本,好多文章使用的比我老的版本做的测试。

直接更改header.php的输出

网络上有说更改{themes}/header.php文件中的以下代码。

<link rel="alternate" type="application/rss+xml" title="<?php bloginfo('name'); ?> RSS Feed" href="<?php bloginfo('rss2_url'); ?>" />
//更改为以下方式
<link rel="alternate" type="application/rss+xml" title="<?php bloginfo('name'); ?> RSS Feed" href="http://feed.chenyudong.com/" />

但是这种修改方法这我的这个版本中没有,这个应该是老版本吧。

更改get_bloginfo中的输出

还有说更改wp-includes/general-template.php文件中的get_bloginfo()函数中的代码。

case 'rss2_url':
    $output = get_feed_link('rss2');//将这个替换了
    break;
//更改为以下
case 'rss2_url':
    $output = 'http://feed.chenyudong.com/';
    break;

这个修改的效果是在WordPress侧边栏的RSS地址中出现改变了,不是在中发生变化。所以此方法也无效。

在functions.php中添加过滤器

在主题下{themes}/functions.php中末尾添加以下代码。

add_filter('feed_link','custom_feed_link', 1, 2);

function custom_feed_link($output, $feed) {

    $feed_url = 'http://feed.chenyudong.com/';
    //具体可以更改以下的不容feed的链接
    $feed_array = array('rss' => $feed_url, 'rss2' => $feed_url, 'atom' => $feed_url, 'rdf' => $feed_url, 'comments_rss2' => '');
    $feed_array[$feed] = $feed_url;
    $output = $feed_array[$feed];

    return $output;
}

//然而目录、作者、标签的feed地址都和上面的相同,你可能需要添加以下的方法
add_filter('category_feed_link', 'other_feed_links');
add_filter('author_feed_link', 'other_feed_links');
add_filter('tag_feed_link','other_feed_links');
add_filter('search_feed_link','other_feed_links');

function other_feed_links($link) {
    $link = 'http://feed.chenyudong.com/other';
    return $link;
}

可以根据需要在$feed_array数组中更改具体的rss地址,这个修改方法有效,在首页头部<head></head>中正确出现。

通过rewrite改写功能来实现feed地址改变

为子域名http://feed.chenyudong.com/建立一个空间,在根目录中的.htaccess文件中添加以下代码,重写url规则改变地址。

RewriteRule . http://feed.feedsky.com/chenyudong [L]

缺点就是比较麻烦,要给子域名创建空间,网上说301重定向只有Google Reader能识别,其他的像鲜果、抓虾、豆瓣无法识别。优点更换便捷,比用cname自由度高,能对feed.chenyudong.com有更多的使用权。

声明:未经允许禁止转载 东东东 陈煜东的博客 文章,谢谢。如经授权,转载请注明: 转载自东东东 陈煜东的博客

本文链接地址: wordpress更改自定义rss feed地址 – https://www.chenyudong.com/archives/wordpress-change-rss-feed-url-with-custom-url.html

分类: wordpress

ubuntu fcitx 小企鹅输入法安装 配置 皮肤设置

Ubuntu 12.04 的默认输入法是ibus,觉得输入不便利,很多词组都没有,而且记忆自定义词组困难。而Fcitx小企鹅输入法在Linux下是一个非常好用的输入法,赞一个。

fcitx小企鹅输入法的安装

1.安装fctix小企鹅输入法

sudo apt-get install fcitx

2.设置fctix小企鹅输入法为默认输入法

im-switch -s fcitx -z all_ALL

3.重启系统或者是重新启动X(按下Ctrl+Alt+Backspace)

fcitx小企鹅输入法的配置

繁体、简体切换

一不小心切换到繁体了,也不知道自己按了什么见,想想Google拼音的是Ctrl+Shift+T切换繁体简体的,fcitx小企鹅按了不行,后来试试Ctrl+Shift+F切换简体、繁体的。

全角半角切换Shift+Space

fcitx小企鹅输入法皮肤

下载皮肤解压缩到下面的目录,如果没有新建这个目录

~/.config/fcitx/skin #将皮肤解压缩到这个目录
mkdir ~/.config/fcitx/skin/ #如果没有该目录,新建这个目录

声明:未经允许禁止转载 东东东 陈煜东的博客 文章,谢谢。如经授权,转载请注明: 转载自东东东 陈煜东的博客

本文链接地址: ubuntu fcitx 小企鹅输入法安装 配置 皮肤设置 – https://www.chenyudong.com/archives/ubuntu-fcitx-installation-and-setting.html

分类: ubuntu, 软件

Ubuntu12.04 启用休眠功能

Ubuntu12.04在电源管理上会有些问题,在休眠上有个bug,所以默认禁用了休眠(hibernate)功能。

Unfortunately, hibernate doesn’t work in many cases with Ubuntu, which can cause you to lose data if you expect your documents and applications to re-open when you switch your computer back on. Therefore, hibernate is disabled by default in Ubuntu 12.04.

–via Ubuntu Help

什么是休眠呢?当让计算机休眠的时候,所有的应用程序、文档都被存储在硬盘中,不需要任何的电量去维持。当下次启动计算机恢复系统的时候,上次的应用程序、文件都被恢复到原来的状态。

测试ubuntu休眠功能是否正常工作

我们可以先通过命令行下测试计算机的休眠功能是否正常。

  1. 打开终端Terminal,用Ctrl+Alt+T打开终端。
  2. 输入sudo pm-hibernate,按回车运行命令。输入密码。
  3. 计算机将会开始关闭,重新开机后看看时候还能回到之前的工作界面。 如果swap分区容量小于正在使用的内存RAM的容量,那么休眠将会失败。

启用休眠功能

当我们需要让计算机休眠的时候,我们可以通过使用命令sudo pm-hibernate来让计算机休眠。

通过以上步骤就可以解决计算机的休眠问题了。我的计算机休眠正常。不过之前之给swap分区2G的容量,我的内存是6G的,不够使用,休眠失败,后来重装系统把swap分区调到5G的容量。

声明:未经允许禁止转载 东东东 陈煜东的博客 文章,谢谢。如经授权,转载请注明: 转载自东东东 陈煜东的博客

本文链接地址: Ubuntu12.04 启用休眠功能 – https://www.chenyudong.com/archives/ubuntu-enable-hibernate.html

分类: ubuntu

unzip.php解压缩远程压缩文件

用ftp上传一堆的文件夹,文件数量非常多,上传的效率非常低。所以先将文件压缩后,把压缩文件上传到远程服务器去,然后利用远程服务器来解压缩文件,这样效率就高了。

如果我们使用php空间的话,那么可以使用unzip.php这个小文件来实现远程解压缩文件。

  1. 下载unzip.php文件,如果有需要先修改unzip里面的密码,在文件的第一行
    <?php
    //验证密码,请自行修改以免被人攻击
    $password = "666666"; //默认初始密码
    ?>
  2. 上传unzip到ftp需要解压缩文件所在的目录,对所在的目录设置权限,让公共权限具有写入权限,这个用ftp软件可以直接设置。
  3. 访问http://目录/unzip.php,在页面里选择需要解压缩的文件,目录为空则解压缩到当前文件夹下。
  4. 解压缩成功后,页面会列出解压缩的文件。如果之前目录没有写入权限,那么解压缩将会失败。

请上传的时候上传zip文件,如果是其他格式请先在本地转换成zip格式。通过这样的方法上传文件快速,解压缩快速,节约时间。

声明:未经允许禁止转载 东东东 陈煜东的博客 文章,谢谢。如经授权,转载请注明: 转载自东东东 陈煜东的博客

本文链接地址: unzip.php解压缩远程压缩文件 – https://www.chenyudong.com/archives/unzip-the-remote-compressed-file-via-unzip-php.html

分类: 网络

linux libc.so.6 丢失

刚才想查看/lib/libc.so.6 文件,但是改目录下没有,原来是在/lib/x86_64-linux-gnu/libc.so.6。被Ubuntu给搞的,好多文件都有个x86_64-linux-gnu这个目录,真麻烦啊,要各种的软链接。

后来不小心把/lib/x86_64-linux-gnu/libc.so.6给删除了,整个系统差不多不能使用了。ln、cp、mv等命令直接无法使用,提示

 error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory

只能使用cd、pwd命令,切换到tty终端上也无法登录,也是出现该信息。貌似连关机都不行呢,我是强制关机的。无奈。

libc.so.6是一个动态链接库文件,是GNU C Library的一个共享函数库,软链接到不同的版本上才能起作用。

做最后的搏斗,使用安装盘进入,然后把系统分区加载进来,添加软链接,重启机子,解决问题。

cd /media/**********/lib/x86_64-linux-gnu/
sudo ln -s libc-2.15.so libc.so.6

不过在开机的时候grub有个急救模式,以root身份登录,里面可能也可以解决改问题。我是先使用安装盘先建立软链接后才使用恢复选项的,此时系统已经恢复,不知道改方法能不能使用。网上说:使用Linux Rescue模式,此时系统命令都是静态链接的。未验证。

可以使用静态链接的可执行程序, /sbin/sln 重建软链: /sbin/sln /lib64/libc.so /lib64/libc.so.6

声明:未经允许禁止转载 东东东 陈煜东的博客 文章,谢谢。如经授权,转载请注明: 转载自东东东 陈煜东的博客

本文链接地址: linux libc.so.6 丢失 – https://www.chenyudong.com/archives/linux-libc-so-6-not-found.html

分类: Linux

Copyright © 2017 东东东 陈煜东的博客 粤ICP备13059639号-1

SITEMAP回到顶部 ↑