UnicodeDecodeError当我重命名plone站点时';姓名

UnicodeDecodeError当我重命名plone站点时';姓名,unicode,plone,Unicode,Plone,Plone 4.2.5从4.1.4升级,默认语言为zh cn,默认字符集为utf-8(门户属性/站点属性) 当我尝试在ip:8080/的根页面中重命名Plone站点的名称时,会显示站点错误: An error was encountered while publishing this resource. Error Type: UnicodeDecodeError Error Value: ('ascii', '\xe8\xa2\x81\xe4\xba\x88\xe6\xb9\x98', 0,

Plone 4.2.5从4.1.4升级,默认语言为zh cn,默认字符集为utf-8(门户属性/站点属性)

当我尝试在ip:8080/的根页面中重命名Plone站点的名称时,会显示站点错误:

An error was encountered while publishing this resource. 
Error Type: UnicodeDecodeError
Error Value: ('ascii', '\xe8\xa2\x81\xe4\xba\x88\xe6\xb9\x98', 0, 1, 'ordinal not in range(128)')

Traceback (innermost last):
  Module ZPublisher.Publish, line 126, in publish
  Module ZPublisher.mapply, line 77, in mapply
  Module ZPublisher.Publish, line 46, in call_object
  Module OFS.CopySupport, line 333, in manage_renameObjects
  Module OFS.CopySupport, line 369, in manage_renameObject
  Module zope.event, line 31, in notify
  Module zope.component.event, line 24, in dispatch
  Module zope.component._api, line 136, in subscribers
  Module zope.component.registry, line 321, in subscribers
  Module zope.interface.adapter, line 585, in subscribers
  Module zope.component.event, line 32, in objectEventNotify
  Module zope.component._api, line 136, in subscribers
  Module zope.component.registry, line 321, in subscribers
  Module zope.interface.adapter, line 585, in subscribers
  Module OFS.subscribers, line 101, in dispatchObjectWillBeMovedEvent
  Module zope.container.contained, line 153, in dispatchToSublocations
  Module zope.component._api, line 136, in subscribers
  Module zope.component.registry, line 321, in subscribers
  Module zope.interface.adapter, line 585, in subscribers
  Module OFS.subscribers, line 101, in dispatchObjectWillBeMovedEvent
  Module zope.container.contained, line 153, in dispatchToSublocations
  Module zope.component._api, line 136, in subscribers
  Module zope.component.registry, line 321, in subscribers
  Module zope.interface.adapter, line 585, in subscribers
  Module OFS.subscribers, line 101, in dispatchObjectWillBeMovedEvent
  Module zope.container.contained, line 153, in dispatchToSublocations
  Module zope.component._api, line 136, in subscribers
  Module zope.component.registry, line 321, in subscribers
  Module zope.interface.adapter, line 585, in subscribers
  Module OFS.subscribers, line 101, in dispatchObjectWillBeMovedEvent
  Module zope.container.contained, line 153, in dispatchToSublocations
  Module zope.component._api, line 136, in subscribers
  Module zope.component.registry, line 321, in subscribers
  Module zope.interface.adapter, line 585, in subscribers
  Module OFS.subscribers, line 101, in dispatchObjectWillBeMovedEvent
  Module zope.container.contained, line 153, in dispatchToSublocations
  Module zope.component._api, line 136, in subscribers
  Module zope.component.registry, line 321, in subscribers
  Module zope.interface.adapter, line 585, in subscribers
  Module Products.CMFCore.CMFCatalogAware, line 271, in handleContentishEvent
  Module Products.Archetypes.CatalogMultiplex, line 49, in unindexObject
  Module Products.CMFPlone.CatalogTool, line 393, in uncatalog_object
  Module Products.ZCatalog.ZCatalog, line 508, in uncatalog_object
  Module Products.ZCatalog.Catalog, line 369, in uncatalogObject
  Module Products.PluginIndexes.common.UnIndex, line 286, in unindex_object
  Module Products.PluginIndexes.common.UnIndex, line 157, in removeForwardIndexEntry
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe8 in position 0: ordinal not in range(128)
当我尝试将一些文件夹导入到新创建的Plone站点时,曾经出现过与UnicodeDecodeError相关的问题


我成功地重命名了另一个Plone站点的名称。我说不出他们之间有什么区别(

您的站点在某个时候将unicode内容索引到目录索引中,从而有效地破坏了它们。这可能是由于旧的Plone bug,或者某个加载项或自定义代码出错所致

您可以尝试在默认Python编码设置为UTF-8的情况下运行完整的重新索引来解决此问题。以下不是生产站点的推荐步骤;;这只是解决您的问题的临时“石膏”

在Python
site packages
目录中,添加一个名为
sitecustomize.py
的文件,其内容如下:

import sys

sys.setdefaultencoding('utf8')
然后重新启动plone站点并尝试重命名或首先执行完整目录重新索引


请记住再次删除
sitecustomize.py
文件。用Python设置默认编码只会掩盖未来的问题。

如果您可以从控制台获得完整的回溯并将其粘贴到您的问题中,那也会很有帮助。我的意思是不修改站点标题。我有两个plone站点在同一个ZMI下。现在,siteA works不好,所以我创建了siteB并将项目从siteA导入siteB。为了不混淆用户,我尝试将siteA重命名为siteAbackup,然后将siteB重命名为siteA。(我需要siteA的备份以防万一)然后请包括完整的回溯和对您尝试执行的操作的更详细的描述。重命名Plone站点有点…棘手和复杂。站点前面是否有代理服务器,您可以调整以指向新实例?我添加了完整的回溯。我没有代理服务器。@Hugo:有趣。有一个obj目录中使用Unicode编制索引的ect,它正在破坏对其他项的取消索引。让我想想可以做些什么(可能很棘手)。同时,最好将Apache或Nginx放在Plone站点前面,以保护您免受许多常见攻击;这些服务器比Zope HTTP服务器更具战斗力。此外,它还可以使用另一个站点替换站点更容易。