【问题标题】:rabbitmqadmin can't handle unicode?rabbitmqadmin 不能处理 unicode?
【发布时间】:2017-02-05 14:19:06
【问题描述】:

我可能偶然发现了一些似乎是 rabbitmqadmin 如何处理(或者实际上不处理)unicode 的错误。

如果我有一个队列名称中包含 unicode 字符的队列,则 rabbitmqadmin 命令会失败并显示 UnicodeEncodeErrors。

我在 Mac 上运行 RabbitMQ 3.6.6,通过 Homebrew 安装。管理命令和服务器版本相同。

如何重现队列名称问题的步骤:

  1. 创建一个包含 unicode 的队列:'rabbitmqadmin declare queue name=ööö'。
  2. 列出队列:'rabbitmqadmin 列出队列'

输出:

Traceback (most recent call last):
  File "/usr/local/sbin/rabbitmqadmin", line 1007, in <module>
    main()
  File "/usr/local/sbin/rabbitmqadmin", line 413, in main
    method()
  File "/usr/local/sbin/rabbitmqadmin", line 588, in invoke_list
    format_list(self.get(uri), cols, obj_info, self.options)
  File "/usr/local/sbin/rabbitmqadmin", line 705, in format_list
    formatter_instance.display(json_list)
  File "/usr/local/sbin/rabbitmqadmin", line 716, in display
    (columns, table) = self.list_to_table(json.loads(json_list), depth)
  File "/usr/local/sbin/rabbitmqadmin", line 770, in list_to_table
    add('', 1, item, add_to_row)
  File "/usr/local/sbin/rabbitmqadmin", line 749, in add
    fun(column, subitem)
  File "/usr/local/sbin/rabbitmqadmin", line 756, in add_to_row
    row[column_ix[col]] = str(val)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 12-13: ordinal not in range(128)

当消息有效负载包含 unicode 字符时,我遇到了与“rabbitmqadmin get queue=”类似的问题。

【问题讨论】:

    标签: python unicode rabbitmq


    【解决方案1】:

    我认为你是对的,你可以使用 python3 ,检查 this answer 它解释了为什么使用 python3 工作。

    编辑

    1 - 我提交了issue

    2 - 固定到版本:3.6.7 请参阅PR

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-05
      • 2020-03-16
      • 2010-09-08
      相关资源
      最近更新 更多