纪念衫征集
查看: 1711|回复: 7

询问下关于日志显示的问题

[复制链接]
阅读字号:
发表于 2011-2-3 14:46 | 显示全部楼层 |阅读模式
1296715400.jpg
如上所示
之前有见过好友发日志也是这种情况
标题无法显示,就是只能点击评论或者进入该BLOG后点击日志查看才行

不知道这是怎么回事
标题起得太长了吗——应该不是吧

1296715605.jpg
点击日志后才能查看的情况
发表于 2011-2-4 00:38 | 显示全部楼层
……可能想保持一点神秘感吧……?
 楼主| 发表于 2011-2-4 08:13 | 显示全部楼层
因为作品通关的原因
重新写了评测上去
——所以改了下标题

1296778408.jpg

代码问题解决,好神奇
发表于 2011-2-4 13:23 | 显示全部楼层
看起来感觉跟首字是否英文或外文有关系
发表于 2011-2-4 20:59 | 显示全部楼层
啥时候再出现这种问题把链接发给我看看吧。
发表于 2011-2-6 15:09 | 显示全部楼层
怎么我印象中是设了好友可见的文章就会变成这样……?

评分

参与人数 1积分 +1 收起 理由
+ 1 無法解析的字元也會導致這問題

查看全部评分

 楼主| 发表于 2011-2-6 18:14 | 显示全部楼层
6#

當時設置的是全站可見的
发表于 2011-2-7 09:28 | 显示全部楼层
专业点说的话,UCenter在把日志的标题与索引内容提取出来的时候,因为序列化函数的问题,导致中文字符有一定几率会被序列化丢失。
再详细一些的话,UCenter虽然有分编码版本(比如300里面用的是GBK大字符集版),但是实际上源代码所用的字符串的字符集在不同的地方不一样,有些地方是GBK(或者是UTF-8,如果用的是这个版本的话),有些地方则是根据客户端所用的语言来决定字符集(就是ANSI,这不是一个定死的字符集)。
当一个日志被发表的时候,由于代码内传递字符串的时候可能进行了转换,当进行序列化的时候,因为没有正确地进行url编码,有可能双方采用的字符集都是靠通过文字推测,会导致不一致,这样传到浏览器这边的时候,不管是标题还是内容都会因为字符集不同,出现乱码而被PREG_REPLACE替换成了空字符串,结果就是显示类似于{subject}的占位符。
这种情况经常会出现在不同语种的文字混用的情况下,比如英文和中文,中文和日文,甚至简体中文和繁体中文里面。要解决的话需要修改源代码,在序列化这两块内容之前,使用urlencode函数将它们编码成%3E这种十六进制形式,反序列化之前用urldecode进行解码,这样在序列化过程中传输的都是ASCII字符,就不会出现字符集不一致导致文字丢失的情况发生。

我想UCenter之所以会这样是因为开发者觉得HTTP POST数据不会通过URL传输,因而一般不会出问题的缘故。但是UCenter的好几处地方都用的不是统一的字符集,字符串编码转换很难避免。
您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

Archiver|手机版|小黑屋|百合会 ( 苏公网安备 32030302000123号 )

GMT+8, 2024-11-25 13:29 , Processed in 0.067832 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表