本文目錄一覽:
- 1、我怎樣才能在全局忽略UTF-8字元串無效的位元組序列
- 2、bundler 管理 Ruby Gem 小技巧
- 3、ruby連接mysql報錯: Can’t connect to MySQL server on ‘localhost’ (10061)
- 4、ruby1.9.3,rails new blog -d=mysql命令創建blog,輸入rails server,報錯:incorrect mysql client
- 5、安裝ruby環境,用mysql資料庫,總是報錯,調了一下午,網上方法都用了也不管事
我怎樣才能在全局忽略UTF-8字元串無效的位元組序列
如果你只是想在原始位元組進行操作,你可以試試它的編碼為ASCII-8BIT /二進位。
str.force_encoding(“BINARY”).split(“n”)
這不會讓你的U回來,不過,因為在這種情況下,源字元串為ISO-8859(或喜歡):
“- Men\xFC -“.force_encoding(“ISO-8859-1”).encode(“UTF-8”)
= “- Menü -“
如果你想獲得multibyte字元,你必須知道的源字符集是什麼。
一旦你force_encoding如果數據是從您的資料庫,你可以改變你的ASCII-8BIT或二進位編碼;ruby應該舉報他們據此即可。或者,您可以monkeypatch資料庫驅動程序來強制編碼的讀取它的所有字元串。這是一個巨大的,雖然,可能是完全錯誤的做法。
正確的答案將是解決你的字元串編碼。這可能需要它們的資料庫修復,資料庫驅動程序連接的編碼修復,或combinations。所有的位元組仍然存在,但如果你正在處理一個給定的字符集,你應該,如果可能的話,讓ruby知道,你希望你的數據在該編碼。錯誤是mysql2驅動程序連接到已在拉丁文編碼數據的MySQL資料庫,但要指定UTF-8字符集進行連接。該導軌從DB取拉丁文的數據並把它解釋為UTF-8,而不是將其解釋為拉丁文,然後可以轉換為UTF-8。
如果你能在這裡闡述的字元串中,答案是可能的。您也可以看看這個答案的可能的全局(-ish)Rails的解決方案,默認字元串編碼。
bundler 管理 Ruby Gem 小技巧
在 Ruby 項目中,特別是 Rails 項目,使用 bundler 管理 Gem 時,有一些 Gem 需要用到系統庫。例如 Rails 項目中默認需要的 Nokogiri 在 bundle install 時好多人遇到這樣的錯誤:
還可以看 Github 上相關的 [issue](Nokogiri 1.6.8 Install Fails on Mac OS X with xz installed from Homebrew)
還有一個例子就是 mysql2 也需要用到系統腳本,請看其 Readme
還有 bundle install 時比較常見的錯誤就是 libv8 的安裝,Readme 給出的安裝方法是:
事實上,好多 Gem 在 build gem native extension 都會用到系統庫。
當把這些需要依賴系統其他庫的 Gem 使用 Rubygem 時可直接在後面加上 — –with xxxx 但是我們使用 bundler 管理 Gem 時,就需要在 bundle install 之前之行相應的 bundle config build.xxx ,那麼,是否有一種方式我們直接把這些需要在 bundle install 之前的命令寫在一個配置文件裡面,然後我們直接 bundle install 呢?
答案是有的。
事實上,如果你執行了 bundle config build.xxx 命令之後, ~/.bundle/config (~ 表示當前用戶目錄)會填充一些內容,比如我們執行 :
該文件就會追加一行內容: BUNDLE_BUILD__LIBV8: “–with-system-v8”
其實我們也可以為 Bundler 管理的 Ruby 項目添加這樣的特性,譬如:
在 Rails 項目根目錄下新建 .bundle 文件夾,並且新建 config 文件,以後這個項目 bundle 的一些設置就可以寫在 config 文件中了。來看看一個模版:
BUNDLE_PATH: vendor/bundle 表示 bundle install 的 gem 全部在 vendor/bundle/ 目錄下,而不是在 $GEM_HOME 或者 $BUNDLE_PATH 目錄下;然後其他的就是一些依賴系統庫的配置。
更多關於 bundler 配置的文檔,請看 bundle config
另外再推薦一篇文章: Configuring bundler using bundle config
ruby連接mysql報錯: Can’t connect to MySQL server on ‘localhost’ (10061)
mysql的服務沒有開,登錄到mysql伺服器,ps -ef|grep mysqld看看,如果是windows下,執行 sc query mysql 看看服務狀態是什麼
ruby1.9.3,rails new blog -d=mysql命令創建blog,輸入rails server,報錯:incorrect mysql client
先確定你的mysql安裝成功,再在你的GemFile 文件裡面,加入 gem “mysql2”, 然後bundle install,
安裝ruby環境,用mysql資料庫,總是報錯,調了一下午,網上方法都用了也不管事
make的時候需要調用ruby很多編譯前的參數.一些信息make不知道的話會不知道如何建庫.
我個人的建議是根據你安裝的ruby路徑和版本信息把配置選項補充全.下面是我電腦上面的配置,你可以借鑒一下.據我分析應該能解決你的問題.
Provided configuration options:
–with-opt-dir
–with-opt-include
–without-opt-include=${opt-dir}/include
–with-opt-lib
–without-opt-lib=${opt-dir}/usr/lib
–with-make-prog
–without-make-prog
–srcdir=.
–curdir
–ruby=/usr/local/ruby-2.1.2/rubies/ruby-2.1.2/bin/ruby
原創文章,作者:BTZW,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/134157.html