• 締切済み

sassでのrubyバックスラッシュ記法に関して

以下のページを参考に、Sass のカスタム関数を記述しております。 http://terkel.jp/archives/2013/05/custom-sass-functions-using-ruby/ どうしてもバックスラッシュでエスケープした筈の 「\\」がそのまま「\\」として出力されてしまいます。 もちろん、'\'とするとエラーで処理が止まってしまいます。 「ひらがな」を 「\3072\3089\304C\306A」にエスケープしたいのですが、 「\\3072\\3089\\304C\\306A」と出力されてしまいます。 どのように記述すれば、css用にエスケープされた文字列を出力できますでしょうか? 無知なままでの技術利用に対してのお叱りは、真摯に受け止めます。 至急で修正しなければいけない現状です。 恐れ入りますが、お助けいただければ幸いです。

  • Ruby
  • 回答数1
  • ありがとう数10

みんなの回答

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

「出力されてしまいます」というのは、どこでどうやって確認したものですか? 文字列として「\3072\3089\304C\306A」となっているものを、inspectやpメソッドを使用したために "\\3072\\3089\\304C\\306A" と出力されているだけ、ということはないですか? http://docs.ruby-lang.org/ja/1.8.7/method/String/i/inspect.html

96buibui
質問者

お礼

ご回答ありがとうございます。 > 「出力されてしまいます」というのは、どこでどうやって確認したものですか? http://terkel.jp/archives/2013/05/custom-sass-functions-using-ruby/ 上記ページ中段付近にある、 ----------------(引用)---------------- .hello { &:before { content: escape("ヾ(????)ノ"); } } これが、 .hello:before { content: "\30FE\28\E51\2579\25E1\2579\29\FF89"; } こうなります。 ----------------(引用)---------------- 部分の、下の出力結果が、すべて\\になってしまうようです。 > inspectやpメソッドを使用したために 上記URL内に記述されている以外の事は何もしていない為、 可能性は薄いですが、何か確認する方法はありますでしょうか?

関連するQ&A

  • PHPのエスケープシーケンスに関して

    PHPで文字列内で(※だぶるクオーテーションおよびシングルクオーテーション)使用するエスケープシーケンスについて、質問です。 PHPでは例えば \(※バックスラッシュ)を文字列内に含めるときバックスラッシュを二つ続けて入力して print "\\"; 上記の用に記述することになると思いいます。 ただ、上記とは違い  print "  \ "; と上記のようにバックスラッシュの前後にスペースをおいて print することでバックスラッシュをエスケープせずに出力させることができます。 本当はものすごく基本的な動作だと思うのですが、 ちょとこの動きが理解できません。 オライリー本をみてもバックスラッシュはエスケープしないといけないと 記載があります。 よろしくご教授ください。

    • ベストアンサー
    • PHP
  • Ruby:net/httpライブラリで質問です。

    RubyでWEBAPIをたたこうとおもい リファレンスから require 'net/http' Net::HTTP.version_1_2 # おまじない Net::HTTP.start('www.example.com', 80) {|http| response = http.get('/index.html') puts response.body } という記述を利用してヤフーのページを取得しようと 動かしたところまったく動作しなかったのでだめもとで例外をとってみたら begin Net::HTTP.version_1_2() # おまじない Net::HTTP.start("http://yahoo.co.jp", 80) {|http| response = http.get("/index.html"); puts response.body } rescue => ex print ex.class; print "<hr />"; print ex.message; print "<hr />"; print ex.backtrace; end SocketErrorgetaddrinfo: 記憶域制御ブロックが壊れています。 C:/ruby/lib/ruby/1.8/Net/HTTP.rb:560:in `initialize'C:/ruby/lib/ruby/1.8/Net/HTTP.rb:560:in `open'C:/ruby/lib/ruby/1.8/Net/HTTP.rb:560:in `connect'C:/ruby/lib/ruby/1.8/timeout.rb:53:in `timeout'C:/ruby/lib/ruby/1.8/timeout.rb:101:in `timeout'C:/ruby/lib/ruby/1.8/Net/HTTP.rb:560:in `connect'C:/ruby/lib/ruby/1.8/Net/HTTP.rb:553:in `do_start'C:/ruby/lib/ruby/1.8/Net/HTTP.rb:542:in `start'C:/ruby/lib/ruby/1.8/Net/HTTP.rb:440:in `start'C:/Apache/htdocs/tokui12.rb:11 上記のような例外が取れました。 これは、Rubyの際インストールが必要なのでしょうか? リファレンスまんまを利用しているので記述間違いとかはないと思うのですが・・・ システム的な問題?と思いPHPでたたいたところ PHPであれば普通にAPIはたたけました。 対処策はどうしたらいいのでしょうか?

    • ベストアンサー
    • Ruby
  • 【smarty】<A href="">内でのみescapeが効きません

    <A href="">の""内でのみescapeが有効とならず 変数の値がそのまま出力されてしまいます。 HTMLとして出力する際はescapeは期待値どおりの動作をします。 例 ---- $wardに[あ]が入っているとして。 PGの記述:  {$ward|escape:"url"}  <A href="{$ward|escape:"url"}"> 出力:  %A4%A2  あ ---- リファレンスではアンカーのURL属性内でも正常に動作するように記述されています。 何が悪いのでしょうか? どなたかご教授をお願い致しますm(_ _)m

    • ベストアンサー
    • PHP
  • Rubyの質問です

    (1)Rubyプログラムの質問です。 y = ax^3 + bx^2 + cx + d 整数a,b,c,dを読み込んで、xが0から1まで0.1刻みでyの値を求め、印字するプログラムを作っています。 そして、この中でyの値が最小・最大となるときのx,yの値を出力したいのですが、どう求めればよいのかわかりません。 どなたかご教示いただければ幸いです。 (2)もう一つありまして、これもRubyプログラムに関してです。 exp(1) = 1 + 1/1! + 1/2! + ・・・ + 1/n! + ・・・ですが、 この近似式よりexp(1)の値を求めるプログラムの作成の仕方で悩んでいます。 さらにn = 1,2,3・・・10として、近似式を求めるプログラムを作りたいのです。 この問題に関しても、ご存じの方いらっしゃいましたら、ご教示ください。

  • requireするファイルのパス

    プログラミングの知識はほぼ皆無なのですが、仕事でRUBYを使わなければならなくなり、オープンソースを弄っているところです。 rbファイルの記述に require '○○' とあるのですが、判らなかったので無視して実行してみたところ、 C:/Ruby193/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot loa d such file -- ○○ (LoadError) from C:/Ruby193/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require ' from makeindex.rb:2:in `<main>' というエラーが出ました。 ○○ファイルを色々なディレクトリに置いてみたのですが、どれも同じエラーでした。 一般的に、○○ファイルは何処に置くべきなのでしょうか。 尚、環境は以下の通りです。 WindowsXP RUBY 1.9.3 「require '○○'」の記述があるrbファイルの場所 c:\a rbファイルはカレントディレクトリをaにしてから実行 プログラマーの方からすれば意味不明な質問かも知れませんが、ネットで調べてみてもさっぱり判らなかったので質問させて頂きました。 宜しくお願いします。

    • ベストアンサー
    • Ruby
  • Rubyプログラムの質問です

    Rubyプログラムの質問です。 y = ax^3 + bx^2 + cx + d という関数が与えられていて、 整数a,b,c,dを読み込んで、xが0から1まで0.1刻みでyの値を求め、印字するプログラムを作っています。 そして、この中でyの値が最小・最大となるときのx,yの値を出力したいのですが、どう求めればよいのかわかりません。 まずxを0から1まで0.1刻みで出力するのはstepを使って 0.step(10,0.1){ |x| print( x,"\n" ) まではわかりました。 その出力したxをどのように関数の式に代入するのかがわかりません。 そして最小値・最大値を求める問題ですが、最小値を記憶して、次の要素より小さければ交換という 形でいこうと思っているのですが、これもどのようにすればよいのかはっきりわかりません。 loopを使うということは何となく想像がつきます。 たとえばこのようにしても大丈夫なのでしょうか? for( i=1;i<100;i++ ){ if( a[0] < a[i] ){ work = a[0]; a[0] = a[i] a[i] = work; } } どなたかご教示いただければ幸いです。

  • 画面にそのままを出力したい

    初歩的な質問ですが、調べても出てこないので質問させてください PHPで記述したものをそのまま出力するにはどうしたらいいでしょうか Perlでいうところの print <<"任意の文字"; この中をそのまま出力 任意の文字 こんなことができる記述方法を探しています ようは、PHPでechoで書くと""でくくると内部にある"を全て\でエスケープしなくてはなりませんし、だからといって''にすると今度は'を\でエスケープしなくてはならないと思うのですが、いちいちくくったものと同じ記号のエスケープを考えなくていい方法を探しています。 ただし、内部で$など変数を使えるような方法が必要です。 何かいい方法を教えてください。

    • ベストアンサー
    • PHP
  • RubyプログラムでURLより取得したデータの出力

    Rubyにて、Twitterの出力結果をスクリプト経由で出力させるさせようとしていますが、日本語で出力させたいのですが、出力結果が下記のように文字化けしてしまうのですが、日本語として表示させることは可能でしょうか。-K kcodeオプションは試したのですが結果は変わりませんでした。 ご存知の方がいらっしゃれば、ご教示お願いいたします。 "description"=> "\u901A\u4FE1\u4E8B\u696D\u8005\u304B\u3089\u6D41\u308C\",

  • bundle install

    rake-0.9.2.2を使用したいのですが、Mac OS Xにデフォルトでインストールされていたrake-10.0.3をアンインストールしてから、bundle installを実行するとInstalling rake (10.0.3)となって、10.0.3がインストールされてしまいます。 rakeのデフォルトを0.9.2.2に変更するのはどのようにすればいいですか? 以下が10.0.3のアンインストールからバンドルインストールの様子です。 map002$ gem uninstall -i /Users/****/.rvm/gems/ruby-1.9.3-p385 Select gem to uninstall: 1. rake-0.9.2.2 2. rake-10.0.3 3. All versions > 2 Successfully uninstalled rake- map002$ bundle install Fetching gem metadata from https://rubygems.org/......... Fetching gem metadata from https://rubygems.org/.. Installing rake (10.0.3) Using i18n (0.6.4) Using multi_json (1.6.1) Using activesupport (3.2.9) Using builder (3.0.4) Using activemodel (3.2.9) Using erubis (2.7.0) Using journey (1.0.4) Using rack (1.4.5) Using rack-cache (1.2) Using rack-test (0.6.2) Using hike (1.2.1) Using tilt (1.3.5) Using sprockets (2.2.2) Using actionpack (3.2.9) Using mime-types (1.21) Using polyglot (0.3.3) Using treetop (1.4.12) Using mail (2.4.4) Using actionmailer (3.2.9) Using arel (3.0.2) Using tzinfo (0.3.37) Using activerecord (3.2.9) Using activeresource (3.2.9) Using coffee-script-source (1.6.1) Using execjs (1.4.0) Using coffee-script (2.2.0) Using rack-ssl (1.3.3) Using json (1.7.7) Using rdoc (3.12.2) Using thor (0.17.0) Using railties (3.2.9) Using coffee-rails (3.2.2) Using jquery-rails (2.2.1) Using bundler (1.3.2) Using rails (3.2.9) Using sass (3.2.7) Using sass-rails (3.2.6) Using sqlite3 (1.3.7) Using uglifier (1.3.0) Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed. map002$ よろしくお願いします。

    • ベストアンサー
    • Ruby
  • mysqlバッチモードでのエスケープ文字

    mysqlでエスケープ文字を含んだファイルをバッチモードでクエリーを実行させた時、エスケープ文字がそのまま出力ファイルに記述されます。(\tがTABにならずに、\tのまま出力される) バッチモードの場合、どのようにしたらエスケープ文字を正常に出力させる事が出来るのでしょうか。 ちなみに、同様のクエリーをmysql(コマンドラインツール)を起動して直接入力し動作させる、 およびMysql Control Centerで行うと、期待通りの表示(\tはTAB)になります。 よろしくお願いします。Mysqlは ver4.0.18-max-ntです。

専門家に質問してみよう