Saya menggunakan Ruby 1.9.1 dengan Rails 2.3.4 Aplikasi saya adalah untuk menangani input teks
Jika saya mencoba sesuatu seperti (tanda kutip di dalam terlihat berbeda)
text = "”“"
Saya mendapatkan kesalahan berikut:
#<SyntaxError: /Users/tammam56/rubydev/favquote/lib/daemons/twitter_quotes_fetch.rb:54: invalid multibyte char (US-ASCII)
/Users/tammam56/rubydev/favquote/lib/daemons/twitter_quotes_fetch.rb:54: invalid multibyte char (US-ASCII)
/Users/tammam56/rubydev/favquote/lib/daemons/twitter_quotes_fetch.rb:54: syntax error, unexpected $end, expecting keyword_end
Saya perlu menggunakan tanda kutip tersebut karena pengguna dapat memasukkannya dan saya harus menjelaskannya?
Ada ide?
Jawaban:
Sudahkah Anda mencoba menambahkan komentar ajaib di skrip tempat Anda menggunakan karakter non-ASCII? Itu harus pergi di atas skrip.
Itu bekerja untuk saya seperti pesona.
sumber
#!/bin/env ruby
tidak perlu kecuali Anda menjalankan skrip dari baris perintah sebagai yang dapat dieksekusi. The# encoding
garis bekerja dengan sendirinya.# encoding: utf-8
. Ini akhir tahun 2013 dan kami masih harus memainkan game ini. Tunggu, telepon berdering ... Saat itu tahun 2033, mereka menelepon untuk mengatakan bahwa mereka masih memainkannya. Oh well, terima kasih sudah mengingatkan saya, Jarek Zmudzinski dari 2010.Jika Anda ingin menambahkan komentar ajaib pada semua file sumber proyek dengan mudah, Anda dapat menggunakan
magic_encoding
permatalalu panggil saja
magic_encoding
terminal dari root aplikasi Anda.sumber
magic_encoding
hanyalah alat baris perintah, bukan ketergantungan proyek.Saya hanya ingin menambahkan solusi:
Saya menggunakan umlaut Jerman seperti ö, ü, ä dan mendapatkan kesalahan yang sama.
@ Jarek Zmudzinski baru saja memberi tahu Anda cara kerjanya, tapi ini milik saya:
Tambahkan kode ini ke bagian atas Pengontrol Anda:
# encoding: UTF-8
(misalnya untuk menggunakan pesan kilat dengan umlaut)
contoh Pengontrol saya:
Sekarang Anda dapat menggunakan ö, ä, ü, ß, "", dll.
sumber
Kutipan ganda miring itu bukan karakter ASCII. Pesan kesalahan menyesatkan tentang mereka yang 'multi-byte'.
sumber
Hanya perhatikan bahwa pada Ruby 2.0 tidak perlu menambahkan
# encoding: utf-8
. UTF-8 terdeteksi secara otomatis.sumber
Itu berhasil bagi saya:
sumber