我正在从各种RSS源中读出大量文本,并将它们插入到我的数据库中。 当然,Feed中使用了几种不同的字符编码,例如UTF-8和ISO-8859-1。 不幸的是,文本的编码有时会出现问题。 例: 1)“Fußball”中的“ß”在我的数据库中应该是这样的:“Ÿ”。 如果是“Ÿ”,则显示正确。 2)有时,“Fußball”中的“ß”在我的数据库中是这样的:“ß”。 那当然是显示错误了。 3)在其他情况下,“ß”被保存为“ß” – 所以没有任何改变。 然后它也显示错误。 我能做些什么来避免案例2和3? 我怎样才能使所有的编码相同,最好是UTF-8? 何时必须使用utf8_encode(),何时必须使用utf8_decode()(显然是什么效果,但何时必须使用函数?),什么时候必须对input做什么? 你能帮助我,告诉我如何使一切相同的编码? 也许与函数mb-detect-encoding()? 我可以为此写一个函数吗? 所以我的问题是:1)如何找出文本使用什么编码2)如何将其转换为UTF-8 – 无论旧编码是什么 编辑:这样的function会工作吗? function correct_encoding($text) { $current_encoding = mb_detect_encoding($text, 'auto'); $text = iconv($current_encoding, 'UTF-8', $text); return $text; } 我已经testing过,但不起作用。 它出什么问题了?
2010年,您会在大型门户网站上提供包含UTF-8字符的url吗? 根据URL上的RFC,禁止Unicode字符(请参阅此处 )。 他们必须百分比编码符合标准。 但是我的主要观点是提供未编码字符的唯一目的是看起来漂亮的URL,所以百分比编码已经不存在了。 所有的主stream浏览器似乎都是parsing这些URL,不pipeRFC说什么。 然而,我的一般印象是,离开networking浏览器的领域时,它变得非常不稳固: 将URL复制粘贴到文本文件,电子邮件,甚至是具有不同编码的网站 HTTP客户端库 异国情调的浏览器,RSS阅读器 我的印象是正确的,在这里可能会遇到麻烦,因此,如果您服务于非技术性的受众群体,那么这不是一个实际的解决scheme,重要的是即使引用并传递了所有链接也能正常工作。 是否有一些神奇的方式在HTML中提供漂亮的url http://www.example.com/düsseldorf?neighbourhood=Lörick 可以复制+粘贴完整的特殊字符,但在旧客户端重复使用时可以正常工作?
有没有在PHP中的function,可以解码Unicode转义序列,如“ \u00ed ”到“ í ”和所有其他类似的事件? 我在这里发现类似的问题,但似乎并没有工作。
我需要在我的Java webapp(servlets + JSP,不使用框架)中使用UTF-8来支持常规芬兰语文本和西里尔文字母,如特殊情况下的ЦжФ 。 我的设置如下: 开发环境:Windows XP 生产环境:Debian 使用的数据库:MySQL 5.x 用户主要使用Firefox2,但也使用Opera 9.x,FF3,IE7和Google Chrome访问该站点。 如何做到这一点?
没有BOM的 UTF-8和UTF-8有什么区别? 哪个更好?
如何以编程方式正确设置JVM(1.5.x)使用的默认字符编码? 我已经读了-Dfile.encoding=whatever方式去老JVM …我没有那种奢侈的原因,我不会进入。 我努力了: System.setProperty("file.encoding", "UTF-8"); 该属性被设置,但它似乎不会导致下面最后的getBytes调用使用UTF8: System.setProperty("file.encoding", "UTF-8"); byte inbytes[] = new byte[1024]; FileInputStream fis = new FileInputStream("response.txt"); fis.read(inbytes); FileOutputStream fos = new FileOutputStream("response-2.txt"); String in = new String(inbytes, "UTF8"); fos.write(in.getBytes());
我试图使用UTF-8并遇到麻烦。 我尝试了很多东西, 这里是我得到的结果: ???? 而不是亚洲人物。 即使是欧洲文本,我也得到Se?or 。 奇怪的胡言乱语( Señor ?),例如Señor 新浪新闻 新浪新闻 。 黑色钻石,如塞尔。 最后,我陷入了数据丢失或者至less被截断的情况: Se for Señor 。 即使我的文字看起来不错,也没有正确sorting 。 我究竟做错了什么? 我如何修复代码 ? 我可以恢复数据吗?如果是这样,怎么办?
我经常在使用MySQL的PHP脚本中看到类似下面的内容 query("SET NAMES utf8"); 我从来没有这样做的任何项目,所以我有一些基本的问题。 这只是用PDO完成的吗? 如果这不是一个PDO特定的事情,那么做这个的目的是什么? 我意识到这是设置MySQL的编码,但我的意思是,我从来没有使用它,所以我为什么要使用它?
对昨天我问的一个问题的答复之一,建议我应该确保我的数据库可以正确处理UTF-8字符。 我怎样才能做到这一点与MySQL?
我已经看到在脚本的顶部使用这个脚本的几个py脚本。 在什么情况下应该使用它? import sys reload(sys) sys.setdefaultencoding("utf-8")