• 締切済み

HTMLユニコード(数値文字参照)の復元

10進HTMLユニコードを基のunicodeに変換したいのですが、どなたか、ご存知ないでしょうか。 こちらの環境はWindowxXp Borland C++ Builder6です。 今、「【」から12301を16進化して3010とし、これに無理やり、「\u」と「3010」を結合させてみたのですが、出力表示はu3010と失敗でした。 うまく行けば、「【」となるはずでしたが・・・・・・。 Web検索したところ、APIなどの変換のための関数が見つからないで自作したいと思っています。 宜しくお願いします。

みんなの回答

回答No.4

12304(=0x3010)だったら「【」が出力されますが。 #include <iostream> #include <locale> using namespace std; int main() { wcout.imbue(locale("japanese")); wcout << wchar_t(12304) << endl; }

  • wormhole
  • ベストアンサー率28% (1621/5657)
回答No.3

>今、「【」から12301を16進化して3010とし、これに無理やり、「\u」と「3010」を結合させてみたのですが、出力表示はu3010と失敗でした。 >うまく行けば、「【」となるはずでしたが・・・・・・。 どのようなコードを書かれたのでしょう? 結果だけ見ると文字列の"\u"と、文字列の"3010"を連結してるだけのように思われるのですが(連結さえすれば自動的に"【"になると思われてるような気がする)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

単に「テキストデータにしたい」なら, (バイト数やバイトオーダーに注意して) バイナリで「12301 という数字」を出力すればいいだけじゃないかな? 16ビットで出力すれば「それなりなバイトオーダーの UTF-16」になるはず. たとえば #include <stdio.h> int main(void) { unsigned int code = 12301; FILE *fp = fopen("paren.txt", "wb"); fputc(code >> 8, fp); fputc(code & 0xff, fp); fclose(fp); return 0; } でビッグエンディアンの UTF-16 になると思う... いや, 12301 だと別の文字か?

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

どうなることを期待しているんでしょうか? 「出力表示」とあるからにはどこかに何らかの方法で「出力」したいのだとは思いますが, 「どこに」「いかなる方法で」出力したいんでしょうか?

toshi_yn
質問者

補足

言葉足らずで申しわけないです。 要は、「【」のHTMLユニコードは【となりますが、これをもとの「【」にしたテキストデータとして復元したいのです。ちなみに「【」のUNICODEは\u3010です。 復元したテキストを画面に表示させていたものですから、このような表現になってしまいました。 復元したテキストをテキストデータとして得られれば、OKです。 背景としてはあるWebページのテキストをコピーしたところ、【のようなHTMLユニコードの羅列で テキストとして読めなかったため、復元して読めるようにしたいのです。 復元方法はWebサイトの変換のページで行うのではなく、プログラムとして組んで実現を考えています。 宜しくお願いします。

関連するQ&A

  • unicode←→JISコード

    Borland C++ Builder5で、メール関係のプログラムを書いていますが、VBAが返すunicodeをjisに変換したいのです。それ用のAPIがあるらしいのですが、APIリファレンスが手元にないわ、買うにも高すぎるわで、困っています。 APIを直接聞いちゃうのはルール違反かもしれませんので、違う質問をします。 BorlandについてくるHELPでWideCharToMultiByteというのがあります。これが解決に近いですか? というか、ワイドキャラクタとマルチバイトって、どう違うんでしょうか?

  • VBScript ASC関数:文字エンコード(Unicode→Shif

    VBScript ASC関数:文字エンコード(Unicode→Shift-JIS)多対一変換について 初めての質問です。 よろしくお願いいたします。 【質問】 VBScriptのASC関数で文字をShift-JISコード 表示した場合、多対一変換され、文字変換が起こります。 この多対一変換をしないように、もし対応する文字が無い場合は、 ?になるようにしたいと思いますが、良い方法は無いでしょうか? 【現象】 ラテン1補助の&#x00C0;文字(A`)の UnicodeとSift-JISコードのマップ対応が原因のようです。 具体的には、&#x00C0;は、 Unicodeでは(A`)だが、Sift-JISコードでは(A) にマップされているのです。 IMEパッドの文字コードをみるとわかります。 以下のサイトを見ると、さらに詳しく載っています。 ▼参考サイト 第7回 Unicodeからの多対一の変換[前編] http://gihyo.jp/admin/serial/01/charcode/0007 そこで、APIのwidechartomultibyte関数の wc_no_best_fit_charsを設定したエンコード方式 を使用すれば解決するというところまでは、 わかってきたのですが、これをVBScriptのASC関数 と同じ動きをするように関連付けるか、別途プログラム を作る方法がわからず困っています。 わかる方いらしたら、ご教授下さい。 よろしくお願い致します。

  • 漢字をUnicodeに変換する方法を教えてください!

    現在取り組んでいるシステム開発で、漢字が含まれている文字列をUnicodeに変換する処理を行っています。例えば、 StrConv("出力", vbUnicode) 上記の変換結果は、"(8)娚"となります。この文字を、 StrConv("(8)娚", vbFromUnicode) このように再び漢字に戻した結果、"宇力"という文字化けが発生してしまいます。 いろいろと調べていたら、"出"と"宇"のUnicodeへの変換結果がどちらも"(8)"で同じである事に気付きました。これは一体、どういうことなのでしょうか? 漢字を文字化けさせないでUnicodeに変換するにはどうすればよいですか? また、Unicodeに変換する関数;MultiByteToWideChar()のVBでの記述方法や宣言の仕方など詳しく教えて下さい!! よろしくお願い致します。。。

  • 文字コード変換

    JavaでDBから取ってきた、全角ハイフン「-」(Unicode\u2212)を出力すると、認識できず、「?」となってしまいます。うまく変換する方法を教えてください

  • エスケープされたunicodeのデコード

    "\u063A\u0629" 上記のようなエスケープされたUnicodeの文字列を C言語でデコードしなければならないのですが、 何か利用できる関数や、変換ルールなどはないでしょうか? Javascriptなどでは簡単に出来るようなのですが、 C言語の説明は見つけられませんでした。 上記文字列はJSON形式で得られたものなのですが、 どうしてもC言語でデコードする必要があり、困っております。 ちなみにOSはLinuxで、iconvなどはインストール済みです。 エスケープされているせいか、そのままでは変換できないようです…。 ご存知の方がいらっしゃいましたら、是非ご教授お願いいたします。

  • Unicodeのテキストファイルを読みたい

    Unicode(UTF-8)で作成されたテキストファイルを読み、Shift-JISに変換しメモコントロールに表示したいと思っています。 以下のコードで実行したのですが、文字化けになり正常に表示できません。 開発環境はC++Builder2010です。 char sjis[300]; wchar_t buf[300]; size_t n; setlocale(LC_ALL,"japanese"); while(fgetws(buf,300,fp31) != NULL){ n = wcstombs(sjis,buf,300); Memo1->Lines->Add(sjis); } fgetws関数が問題なのか、wcstombs関数が問題なのか、不明なのです。 アドバイスよろしくお願いいたします。 ちなみに読込んだテキストファイルは、国税局のインボイス登録者データです。 https://www.invoice-kohyo.nta.go.jp/download/index.html

  • 【javascriptのescape関数】

    【javascriptのescape関数】 javascriptとescape関数の説明に 「escape関数を用いると文字列をISO-Latin-1コードに変換してくれます。」 とあります。 ひらがなの「あ」は「%82%A0」となるらしいのですが、 (ブラウザごとに結果が異なり、自分が試したときはユニコードの「%u3042」へ変換されました) Latin1ってひらがなはあつかえないとおもってたのですがどういうことでしょうか。 ユニコードの「あ」の3042は符号化文字集合表に定義されているので理解できましたが、 latin1の表http://hp.vector.co.jp/authors/VA014833/HTML32/H … に「あ」は含まれないので理解できませんでした。 どなたかご教示ください。 以上宜しくお願い致します。

  • itoaは4バイト整数を

    数文字列に変換しますが 8バイト整数を10進数整数文字列に変換する関数はあるでしょうか? また逆にatoiのように兆単位の10進整数整数文字列を8バイト整数に変換する関数はあるでしょうか? OSは98seでコンパイラはBorland C++5.51を使っていてAPIやSTLなどでプログラミングしています

  • CGI.pmでHTMLのネームエンティティを出せるか

    CGI.pmでHTMLのネームエンティティを出力できるのでしょうか。 例えばescapeHTML()は'<'や'>'を'&lt;'や'&gt;'へ変換してくれますが、 半角スペースは'&nbsp;'へ変換してくれません。 半角スペースを使いたい場合、print('&nbsp;');のように書くしかないのでしょうか。 それともCGI.pmで何か専用の関数が用意されているのでしょうか。

    • ベストアンサー
    • Perl
  • スタイルシートのソースを、色分けにしてHTMLに出力するソフトウェア

    よくプログラミングの講座などを乗せてくれているサイトは、見やすいようにまるでテキストエディタで表示したかのように関数などを色分けしたHTMLを掲載しています。 同じようなページを作成したいのですが、スタイルシートなどを色分けした状態でHTMLに出力してくれるソフトウェアはないでしょうか? SourceConverterというソフトウェアを見つけたのですが、これにはCSSは変換できなかったです。 もし、知っておられる方がいましたら、よろしくお願いいたします。

専門家に質問してみよう