【发布时间】:2017-02-05 14:19:06
【问题描述】:
我可能偶然发现了一些似乎是 rabbitmqadmin 如何处理(或者实际上不处理)unicode 的错误。
如果我有一个队列名称中包含 unicode 字符的队列,则 rabbitmqadmin 命令会失败并显示 UnicodeEncodeErrors。
我在 Mac 上运行 RabbitMQ 3.6.6,通过 Homebrew 安装。管理命令和服务器版本相同。
如何重现队列名称问题的步骤:
- 创建一个包含 unicode 的队列:'rabbitmqadmin declare queue name=ööö'。
- 列出队列:'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=”类似的问题。
【问题讨论】: