我的客户在我的托pipe服务上使用了非常过时的电子商务pipe理系统。 对于该产品,供应商不再提供任何支持。
简单的解释: 宣称在LAMP堆栈下运行的商店网站是由运行在MS Access上的旧的Visual Basic Windows应用程序构build的。 用户构build商店,定义HTML模板,添加产品和类别等。
然后 ,VB EXE构buildPHP页面(每个模板页面一个)和SQL脚本在MySQL上运行。 它还通过FTP上传所有内容,并自行运行安装/升级脚本。
在浏览网站时,许多产品的描述在euro符号之前被切断。 例如,“产品价格1000欧元”应该是“产品价格”
^À Sat Dec 15 11:16:57 2012 22 xxx.xxx.128.13 1112727 /srv/www/domains/xxxxxx.it/htdocs/db.sql b _ ir xxxxxxx ftp 0 * c似乎是一个二进制转移(也是一个巨大的安全漏洞,因为您可以从未经身份validation的HTTP下载整个数据库) 它看起来像file upload为二进制。 也许在客户以前的主机上,它一切正常,因为这是一个Windows主机。
这是一个使用vsftpd和openSSH运行openSUSE 12.2的Azure虚拟机
不要求客户使用FileZilla手动上传文件或用€replace€ € ,因为他拒绝了,我可以在服务器端做什么来防止vsftpd搞砸欧元符号?
您可以尝试更改SQL文件的编码以及行分隔符。 或者,您可以将所有符号更改为€ 。
通过设置MySQL的默认字符集不同于UTF-8,我可以正确显示欧元
资源
#default-character-set = utf8 collation-server = latin1_general_ci #init-connect='SET NAMES latin1_general_ci' character-set-server = latin1
第一行是评论,因为我的版本的MySQL没有识别它第三个评论,因为我logging在服务器日志和连接截断每个连接(所以每个站点脱机)
我是说修复是部分的,因为我绕过FTP上传,并直接运行SQL到phpMyAdmin与正确的欧元符号