我在使用字符编码方面遇到了一些麻烦.
情况
上载的文件将转换为XML.此文件的字符编码会有所不同,但可能会出现智能引号,实体和各种ASCII.将此文件转换为XML后,它将存储在数据库中.根据用户请求,可以从数据库中提取XML并将其转换为数组,然后将其创建为PDF.
问题
字符编码.从一开始,字符编码就出现了一个重大问题.我想知道;
>什么字符编码通常涵盖整个“频谱”.例如,a& deg;在解析XML或智能引用(‘)时无法识别.智能报价将变成“等”等.
>如何在数据库中存储XML.加密是一种可能,但数据库编码是我迷失的地方.
>如何使实体,智能引号(以及可能导致问题的其他字符)在数据库中正确显示并且在事物前面具有Å.
试图解决这个问题
我已经做了各种“尝试”解决我的问题的功能 – 将一些角色转换成另一个角色.但是,我认为这是完全错误的做法,我应该改变字符编码.
/* * Converts smart quotes to ascii */ function convert_smart_quotes($string) { $string = iconv("UTF-8","UTF-32",$string); $string = mb_convert_encoding($string,'HTML-ENTITIES','UTF-32'); $string = str_replace('','',$string); $search = array('‘','’','“','”','—'); $replace= array("'","'",'"','-'); $string = str_replace($search,$replace,$string); return $string; } /* * Converts some entities to an ISO format? * * Example : ° => ° */ function entity_to_iso($string) { return html_entity_decode($string,ENT_QUOTES & ~ENT_COMPAT,'ISO-8859-1'); }
最终,我的问题在于我不知道上传文件的编码.我知道一个开关试图将字符转换成更多的数据库和“PDF友好”.然而,很多谷歌搜索导致了苦恼的工作或阵列,使一个东西到另一个东西.这真的是解决方案吗?
任何建议,解决方案或手指指向更好的方向都是有帮助的,非常感谢.谢谢.
如果我是你,我会做两件事之一.我要么只是在数据库中存储没有任何编码的东西(作为blob),所以数据库编码根本不会进入它.
您可以做的另一件事是根本不将信息存储在数据库中.只需将其存储在一个文件中(将文件命名为某些独特的哈希),然后在数据库中创建一个表,该表存储具有xml的文件的位置.然后你可以直接从文件中提供xml.
原文地址:https://www.jb51.cc/php/134026.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。