Ily*_*lya 1 elixir phoenix-framework
我有一张表格
<%= select f, :user_id, ["?????": "2", "wow": "3"] %>
如果我只使用英语,那就完美了.但是中文或任何其他返回错误
** (ArgumentError) argument error
:erlang.binary_to_atom("?????", :utf8)
(elixir) src/elixir_parser.yrl:512: :elixir_parser.yeccpars2_93/7
Run Code Online (Sandbox Code Playgroud)
我相信它与编码有关.如何将字符串转换为可接受的格式?
提前致谢!
从当前版本的Erlang(19)开始,Atoms不能包含255以上的代码点.
binary_to_atom(Binary,utf8)
如果二进制文件包含大于255的Unicode代码点,则会失败.在将来的版本中,可以允许此类Unicode字符,而binary_to_atom(Binary,utf8)则不会失败.
该["?????": "2"]语法等同于[{:erlang.binary_to_atom("?????"), "2"}]即它所有的按键转换成原子和您所使用的文本包含超过255码点.
由于select支持任何产生2个元组元组的枚举,因此可以使用较长的表示法构造两个元素字符串元组的列表:
<%= select f, :user_id, [{"?????", "2"}, {"wow", "3"}] %>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
306 次 |
| 最近记录: |