![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
教えてください。
Nokogiriというgemを使ってXMLを処理しています。
Nokogiriへの入力はUTF8なのですが、
XML処理後の出力が16進文字列に変わってしまうのです。
環境はLinux
(Linuxについてはあまり詳しくないので
情報が不十分かもしれません。すいません。)
16進文字列をUTF8に戻すこともできるのですが、
できれば、無駄な手間はかけたくありません。
もし、原因に心当たりがありましたら、
教えていただけると助かります。
Encoding.default_internal、
Encoding.default_externalなども怪しいと思います。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
コードにおかしい点はありません。
本当に16進文字列になっていますか?pとかinspectで16進表示されているだけと言うことはないですか?
16進文字列になっているというのはどうやって判断しましたか?具体的に書いてください。
念のため、「具体的に」というのは他人がその文章を読んで全く同じ手順を実行できるという意味です。
回答ありがとうございます。
結論から言うと、
問題は再現しなくなっていました。
PCを再起動すると治る問題だったのでしょうか・・・
お手数をおかけして
申し訳ありませんでした。
でも、半年Rubyを使ってみましたが、
ときどき、予想外に
UTF8文字列が16進文字列に置き換わる現象が
起きる気がします。
No.1
- 回答日時:
本当に16進文字列に変わっているのなら、エンコードは関係ありません。
とりあえずコードを書いてください。あとRubyのバージョンも。
Encode.default_internalと書いているということは、1.9.1ですか?
回答ありがとうございます。
お察しの通り、Rubyのバージョンは1.9.1です。
ソースはこんな感じです。
# -*- coding: utf-8 -*-~
doc = Nokogiri::XML::Document.new(xml_str_input)
xml_str_output = doc.to_xml()
xml_str_inputはUTF8の文字列です。
xml_str_outputをファイル出力やputsしてみると、
16進文字列が入っています。
xml_str_outputのlengthと
ファイルの文字数は一致するので、
ファイル出力時点で
16進文字列になっているのではないようです。
分かりましたら、
教えていただけますと、助かります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 全角文字「ヴ」の半角文字「ヴ」への変換方法について 3 2022/11/05 12:07
- その他(プログラミング・Web制作) awkの文字列比較はPOSIXロケールまたはCロケールにおいてバイナリ値の比較に使えるか gawkな 1 2023/04/22 09:21
- その他(プログラミング・Web制作) python質問 1 2023/08/14 11:54
- オープンソース 【ChatGTPのオープンソースソフトウェアを解析したことがある方、教えてくださ 2 2023/03/08 18:57
- Excel(エクセル) Excelの空文字判定について 7 2023/01/06 13:25
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Excel(エクセル) Excelの文字列を数字に変換する方法について 6 2023/07/31 21:18
- Java Java 南京錠 2 2023/02/04 11:46
- WordPress(ワードプレス) Wordpressの記事URLを自由に決めたい 3 2022/06/02 12:05
- Visual Basic(VBA) 以下のVBAで該当文字列の前後に付与したい。 例 前に付与 abc ユーザーID 12345 後に付 3 2022/04/19 21:50
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
void lcd_str(unsigned char* p...
-
C言語で全角文字を扱いたいので...
-
平均、最大値、最小値を表示す...
-
配列の値を置換するにはどうす...
-
エクセルのマクロについて教え...
-
だれがとけるの?
-
rand()に関して
-
C言語 exitの使い方
-
【VBA】複合代入演算子
-
RichTextBoxの改行を認知してく...
-
vba 最大値 条件分岐
-
関数で複数の値を戻り値として...
-
HTML上の2つの連動するプルダウ...
-
エクセルへのデータの貼付時に...
-
selectの意味
-
processing エラーで、 "cannot...
-
エラーの意味は? Lvalue req...
-
足して100になるような乱数のア...
-
リソースのコントロールについて
-
Accessコンボボックスにレコー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VisualStudio2022でC言語プログ...
-
C言語で全角文字を扱いたいので...
-
Accessで文字列のバイト数読み込み
-
VBA シート上にドロップダウン...
-
セル内の一部文字列を消去のマクロ
-
アンダーバーとバックスラッシュ
-
VC2008+Qtの文字化け
-
英数半角文字と「-」を指定する...
-
スプレッドシートの関数
-
rubyの正規表現で"["を使いたい...
-
エクセルで数字の変換
-
UTF8が16進文字列に化ける(...
-
文字数の多い単語だけ抽出(多...
-
PHPで特定の変数値を取り出す
-
プロキシを使うプログラムでエ...
-
正規表現で英(大小)と数字を必...
-
ruby 正規表現の日本語とアルフ...
-
Ruby言語にて、全角カナ⇔半角カ...
-
void lcd_str(unsigned char* p...
-
Kシェルでの桁数取得
おすすめ情報