首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >咖啡编码::未定义转换错误,从ASCII-8位到UTF-8位

咖啡编码::未定义转换错误,从ASCII-8位到UTF-8位
EN

Stack Overflow用户
提问于 2012-05-31 06:45:55
回答 1查看 1.4K关注 0票数 2

如何繁殖

Gemfile

代码语言:javascript
复制
gem 'haml'
gem 'sass'
gem 'coffee-script'

app/app.rb

代码语言:javascript
复制
get '/javascripts/rus_test.js' do
  content_type 'text/javascript', charset: 'utf-8'
  coffee :"../../public/javascripts/rus_test"
end

public/javascripts/rus_test.coffee (工作)

代码语言:javascript
复制
alert 'Hello World!'

localhost:3000/javascripts/rus_test.js

代码语言:javascript
复制
(function() {

  alert('Hello World!');

}).call(this);

public/javascripts/rus_test.coffee (不工作)

代码语言:javascript
复制
alert 'Привет!'

给出误差

编码:从ASCII-8位到UTF-8位的未定义转换错误at /javascripts/rustest.js "\xD0“

我尝试在config/boot.rb.中设置Encoding.default的几个变体

启动初始化的变体之一

代码语言:javascript
复制
Padrino.before_load do
  Encoding.default_internal = nil
  # Encoding.default_external = 'ASCII-8BIT'
end

它适用于带有俄语文本的HAML,但不适用于SASS和咖啡

我该怎么做才能修好它?

EN

回答 1

Stack Overflow用户

发布于 2012-06-03 09:49:22

删除可笑的Encoding.default_internal = nil并将此代码添加到猴子补丁Tilt中:

代码语言:javascript
复制
# this makes tilt to treat templates as properly encoded (respect Encoding.default_external)
module Tilt
  class CoffeeScriptTemplate
    def prepare
      @data.force_encoding Encoding.default_external
      if !options.key?(:bare) and !options.key?(:no_wrap)
        options[:bare] = self.class.default_bare
      end
    end
  end
end
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10828668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档