6

Plone 4.1.4 からアップグレードされた 4.2.5、default_language は zh-cn、default_charset は utf-8 (portal_properties/site_properties) です。

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 サイトの名前を変更することに成功しました。それらの違いが何であるかはわかりません。:(

4

1 に答える 1

5

あなたのサイトは、ある時点で Unicode コンテンツを Catalog インデックスにインデックス付けし、効果的にそれらを壊しました。これは、古い Plone のバグか、アドオンまたはカスタム コードが間違っていたことが原因である可能性があります。

これを回避するには、デフォルトの Python エンコーディングを UTF-8 に設定して完全な再インデックスを実行してみてください。次の手順は、本番サイトでは推奨されません。これは、問題に対する一時的な「しっくい」にすぎません。

Pythonディレクトリに、次の内容で名前がsite-packages付けられたファイルを追加します。sitecustomize.py

import sys

sys.setdefaultencoding('utf8')

次に、plone サイトを再起動して名前の変更を試みるか、最初に完全なカタログの再インデックスを実行します。

ファイルを再度削除することを忘れないでください。sitecustomize.pyPython でデフォルトのエンコーディングを設定しても、将来の問題が隠されるだけです。

于 2013-03-15T10:10:51.447 に答える