我有一個奇怪的行爲,在我的參數whichare utf-8傳遞,但特殊字符管理不善。 而不是1個特殊字符,我有2個字符:普通字母+重音。奇怪的字符編碼
Parameters: {"name"=>"Mylène.png", "_cardbiz_session"=>"be1d5b7a2f27c7c4979ac4c16fe8fc82", "authenticity_token"=>"9vmJ02DjgKYCpoBNUcWwUlpxDXA8ddcoALHXyT6wrnM=", "asset"=>{"file"=># < ActionDispatch::Http::UploadedFile:0x007f94d38d37d0 @original_filename="Mylène.png", @content_type="image/png", @headers="Content-Disposition: form-data; name=\"asset[file]\"; filename=\"Myle\xCC\x80ne.png\"\r\nContent-Type: image/png\r\n", @tempfile=# < File:/var/folders/q5/yvy_v9bn5wl_s5ccy_35qsmw0000gn/T/RackMultipart20130805-51100-1eh07dp > >}, "id"=>"copie-de-sm"}
我記錄此:
- logger.debug FILE_NAME
- logger.debug file_name.chars.map(&:to_s).inspect
每一次,同樣的結果:
- Mylène
- [ 「M」, 「Y」, 「升」, 「E」, 「」, 「N」, 「E」]
正如我嘗試使用文件名作爲與已經匹配器現有名稱正確編碼UTF-8,你看我的問題;)
- 編碼是UTF-8無處不在。
- 在ruby 1.9.3和rails 3.2.14下工作。
- 在涉及的任何文件的頂部添加#encoding:utf-8。
我任何人作爲一個想法,把它!
這裏我也發表了問題:https://github.com/carrierwaveuploader/carrierwave/issues/1185但不知道如果其carrierwave問題,或者我失去了一些東西......
聽起來像[Unicode等值](http://en.wikipedia.org/wiki/Unicode_equivalence)的問題您是否嘗試過Unicode規範化? – knut