2013-05-07 35 views
6

Kullanıcılarım bazen kesme işareti (') yerine, kesme işareti () gibi görünen, veritabanıyla ilgili bazı sorunlara neden olan girer. Tek tırnaklı tırnak içinde tırnak işareti ile değiştirin (Ruby)

ben şöyle gsub bunların yerine çalıştı:

result.gsub(/\‘/, "'") 
result.gsub(/‘/, "'") 

çalışmak bu seçeneklerden hiçbiri - hata alıyorum:

syntax error, unexpected $end, expecting ')' 
    return result.gsub(/\‘/, "'").gsub("’", "'") 
         ^

onlar Ruby aittir musunuz? Onları nasıl değiştiririm?

+2

ou kullanımı? – Mattherick

+0

1.9.2 - Çünkü Heroku kullanıyor –

+0

sonucu = "'helle'" sonuç.gsub (/ \ '/, "'") .gsub ("'", "'") geçersiz çok baytlı char (UTF-8) sözdizimi hatası, beklenmeyen $ end, bekliyor ')'. Kodlama problemi olmalı. – Mattherick

cevap

6

Metin editörü doğrudan gibi UTF-8 karakterleri desteklemiyorsa, onları bu şekilde kaçabilir: sizin örnekte Yani

"\u2018" 

, olurdu:

result.gsub(/\u2018/, "'") 
+2

hatasını atar. Eğer sol ve sağ tırnak işareti almak istiyorsanız, bunun yerine bunu myString.gsub (/ [\ u2018 \ u2019] /, "'") yapmalısınız. Son zamanlarda bir Rails uygulaması için Windows XML ihracat ile bunu yapmak zorunda kaldı. –

+0

'is' '' '\ u2018' 'için haritalandırmayı aldınız mı? "'Ô' için aynısını istiyorum. Lütfen yardım edin. –

+0

Bir Unicode tablosuna (http://unicode-table.com/en/search/?q=ô) bakarak Unicode kod noktasını 'ô olduğunu bulabilirsiniz. 00F4'. Ruby'de, "\ u00F4" yazmanız gerektiği anlamına gelir. – kiplantt

1

Dene:

result.gsub("‘", "'") 

O çalışmalıdır.

+0

Bu aslında –

0

@kiplantt'ın söylediklerine ek olarak, aşağıdakiler de (sadece test edilmiştir)

puts result.gsub(/(\`)/, "\\'") 
İlgili konular