• 締切済み

UTF-8が分からなくて困っています。

SJIS → UTF-8形式に変換してデータを伝送したいです。 データの内容は、数字、タブ、改行コード(LF)です。 コードを調べてみたら、文字コードが同じみたいなので、SJISのまま伝送すると正常にファイルを読込むことができないでしょうか? データに付加しなくてはいけないコードなどあるのでしょうか? よくわからず困っています。教えてください、よろしくお願いします。

みんなの回答

noname#140082
noname#140082
回答No.2

数字(全角?)の場合は、0~9は16進数で(EFBC90)~(EFBC99)となります。(3バイト) また、タブは(09),LFは(0A)となります。 ちなみに半角数字であれば、0~9は(30)~(39)となります。 いずれも16進数ですのでお間違いのないように。 また、SJISからEUCなどへの変換は変換ルールで変換できますが、UTF-8に関してすべての文字コードに対応して変換するには、1対1の変換テーブルが必要です。 もし、16進数がわからなければ、UTF-8が表示できるバイナリエディタを使ってご自身で確かめられてはいかがでしょう。 下記、URLのxeditです。

参考URL:
http://www002.upp.so-net.ne.jp/janus/
toratugumi
質問者

お礼

回答ありがとうございます。 お礼が遅くなりすみません。 ファイル作成して確認しました。 詳しく回答していただきありがとうございました。 助かりました。

  • violet430
  • ベストアンサー率36% (27472/75001)
回答No.1

変換したいだけならテキストエディタで読み込んでコードを変更して保存すればできますよ。 EmEditorで可能です。名前を付けて保存する時にコードを選択できます、 http://www.forest.impress.co.jp/lib/offc/document/txteditor/emeditor.html

toratugumi
質問者

補足

ご回答ありがとうございます。 ファイル作ってみました。 また疑問が、、、 コードを変更してファイルを保存するとき、拡張子はそのままでいいのでしょうか?たとえば、csv、dat、txt は別の拡張子に変える必要がありますか? すみません、分かるようでしたら教えてください。

関連するQ&A

  • utf-8のマシンでsjisのデータファイルを読込み、eucでファイルに出力する方法

    utf-8のLinuxマシンで、sjis(改行コードCR+LF)のデータファイルを読込み、euc-jp(改行コードLF)でファイルに出力したいのですが、どのようにすればよいでしょうか。プログラム実行前後に入出力ファイルを直接コード変換することは考えておらず、全て一つのプログラム内でやりたいと考えています。 &jcode'convertで変換するのかなと思っているのですが、読込み時・書き込み時のどちらでやるべきなのか、あるいは両方やるべきなのか分かりません。データには、「・」「I,II」などの特殊文字(?)が含まれているので、それらの文字で問題が起きないかなどもちょっと心配です。 また、&jcode'convertでeucに変換すれば、改行コードも一緒にCR+LFからLFに変換されるものでしょうか。 文字コードのことがよく分かっていないので、的外れな質問になっているかもしれませんが、ご教示願います。

    • ベストアンサー
    • Perl
  • 改行コードCR(\r)をアンダースコア(_)に変換

    AIX、Kシェルです。 ファイルに出力された改行コードCR(\r)をアンダースコア(_)に変換したいのですが、 文字コードSJISだと期待通りの結果になるのですが、UTF-8だと全角の手前で止まってしまいます。 試したコマンドは下記です。 cat file.txt | tr "\r" "_" > tmpfile ex) file.txt(最終行は半角spaceと全角space) 10(改行コード=LF) 11(改行コード=CRLF) 12(改行コード=CR) 1(改行コード=LF) 2(改行コード=CRLF) 3(改行コード=CRLF) ああ(改行コード=CRLF)  (改行コード=CR) 【結果】tmpfile 10(改行コード=LF) 11_(改行コード=LF) 12_1(改行コード=LF) 2_(改行コード=LF) 3_(改行コード=LF) ああ_(改行コード=LF)  _ これがUTF-8だと12までは変換できるのですが、以降が出力されません。 UTF-8でも最後まで変換されるようにするにはどうすれば良いのでしょうか? 初心者で申し訳ありません。 お手数ですが、何卒宜しくお願い致します。

  • utf-8について

    こんにちは。 今、文字コードについて調べているのですが、utf-8がなぜプログラミングと相性が良いのか分かりません。 ここのサイトを調べていると、画面(SJIS)から文字を打ち、utf-8にコード変換して処理をする質問が多いように感じました。 なぜ、utf-16ではなく、utf-8なのかと思っております。 よろしくお願いします。

  • java utf-8 で ファイル出力

    【やりたい事】  ファイルを読み込んで、改行コードCRLFをLFに変換して、空白行は削除して、「正常終了しました。」は削除。  文字コードUTF8で出力したい。 【問題】  UTF-8で指定してるのに、Shift_JISで出力される。 【入力ファイル】  ファイル名:test.tsv  文字コード:UTF-8  改行コード:CRLF ************************ test test1 1 2 1 3 正常終了しました。 ************************ 【現在のソース】 import java.io.*; public class writeFile { /** * @param args */ public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ try { //(1)FileReaderオブジェクトinFileを生成 FileReader inFile = new FileReader("test.tsv"); //(2)FileWriterオブジェクトoutFileを生成 FileWriter outFile = new FileWriter("test_lf.tsv"); //(3)BufferedReaderオブジェクトinBufferを生成 BufferedReader inBuffer = new BufferedReader(inFile); //(4)BufferedWriterオブジェクトoutBufferを生成 BufferedWriter outBuffer = new BufferedWriter(outFile); String line; int cnt=0; //(5)読み込みデータがなくなるまで、読み込み while ((line = inBuffer.readLine()) != null) { //(6)データの書き込み処理 if (line.equals("")){ cnt=cnt+1; }else{ if(cnt<=1){ outBuffer.write(line+"\n"); } } } outBuffer.flush(); //(7)バッファをフラッシュ inBuffer.close(); //(8)読み込みストリームのクローズ outBuffer.close(); //(9)書き込みストリームのクローズ } catch (IOException e) { } try { //(1) //(2)FileInputStreamオブジェクトの生成 FileInputStream abc = new FileInputStream("test_lf.tsv"); //(3)FileOutputStreamオブジェクトの生成 FileOutputStream xyz = new FileOutputStream("test_lf_utf.tsv"); //(4)InputStreamReaderオブジェクトの生成 InputStreamReader in = new InputStreamReader(abc, "Shift_JIS"); //(5)OutputStreamWriterオブジェクトの生成 OutputStreamWriter out = new OutputStreamWriter(xyz, "UTF-8"); int contents; //(6) //(7)読み込むデータがなくなるまで読み込み while ((contents = in.read()) != -1) { //(8)書き込むデータがなくなるまで書き込み out.write(contents); } in.close(); //(9)読み込みストリームを閉じる out.close(); //(10)書き込みストリームを閉じる } catch(IOException e) { } } } 【出力結果】  ファイル名:test_lf.tsv  文字コード:Shift_JIS  改行コード:LF ************************  test test1 1 2 1 3 ************************  ファイル名:test_lf_utf.tsv  文字コード:Shift_JIS  改行コード:LF ************************ test test1 1 2 1 3 ************************ 本当に困っています。 もう二日、はまってます。 ご教授願います。

    • ベストアンサー
    • Java
  • SJIS→UTF-8の文字コード変換

    Perlで、SJISの16進で表記された文字があるのですが、それがうまく表示できません。 Unicodeの16進文字コードだとうまく表記できるのですが…。 以下がスクリプトです。 以下の場合だと。(句点)がSJISだと0x8142で、 その16進文字列を表示したいのですが、実行結果にあるエラーが出てしまいます。 Unicodeだと。は0x3002なのですが、うまく表示できています。 すみませんがよろしくお願いします。 ---------------------------------------- # このファイルの文字コードはSJIS # 改行コードはLF # # 。 SJIS 0x8142 # Unicode 0x3002 # use Jcode; use encoding "sjis"; $a = 0x8142; $a = Jcode->new($a, "sjis")->utf8; printf("句点の表示…%c\n",$a); printf("句点の表示…%c\n",0x3002); ---------------------------------------- 実行結果 "\x{8142}" does not map to shiftjis at test.pl line 14, <DATA> line 846. 句点の表示…\x{8142} 句点の表示…。

    • ベストアンサー
    • Perl
  • 文字化けしたテキストファイルをもとに戻す

    紙copi を使用して文字化けしてしまいました。 問い合わせると、 『文字コードUTF-8のファイルですが、改行コードが「LF」となっております。 紙copiではどの文字コードファイルについても新規ファイル作成時には一律に 「CR+LF」の改行コードにて保存しますので、新規作成時に「LF」の改行コード ファイルが作成されることは通常ないものと考えております。』 で、改行コードが「LF」のテキストファイルを「CR+LF」の改行コードのものに 戻す方法がありますか? よろしくお願いします。

  • UTF8の「-」をsjisで表示する

    mysqlに「1-1-1」という文字をUTF8で登録しました。 sjisで書かれたphpファイルでこの文字を表示するために、sjisに変換したのですが 「1?1?1」となってしまいます。 うまく表示するにはどうすれば良いでしょうか?

    • ベストアンサー
    • MySQL
  • EmEditorでSJISファイルをUTF-8に

    EmEditorでSJISファイルをUTF-8に変換したいと思い、「名前を付けて保存」でUTF-8を選択して保存しました。 すると、次回開く時に、「指定したエンコードで変換できない文字が含まれています・・・」というポップアップが出てしまいます。 日本語を含む、SJISファイルをUTF-8に変換するにはこの手順だけではいけないのでしょうか? どうぞよろしくお願い致します。

  • VB6のテキスト処理 さまざまな文字コード/改行で対応

    VB6のテキスト処理で、Open InputとLine inputを使った場合に 文字コード/改行コードが SJIS/CRLFの時は正しく1行を読み込む事ができますが、改行がLFの時は正しく1行を読み取りません。 改行コードがLFもしくはCRの場合でも正しく1行を読み取る方法はあるのでしょうか? また、文字コードに関してもEUCやUTF-8,JISでも対応できる方法がありましたら教えて下さい。

  • SJIS⇔UTF-8の文字コード変換

    SJIS⇔UTF-8の文字コード変換をするプログラムを作りたいのですが、簡単な方法があれば教えてください。 できれば、文字コードをケース文で判断して・・・のような処理ではないほうが、ありがたいです。

専門家に質問してみよう