喫茶XRAYトップページ

[スレッド全体
]

[11325] QandAの文字化け返信 削除
2017/8/16 (水) 12:47:39 Mr.XRAY
あほなテストしていまいましたが,
どうやったら文字化けするのか知りたくて.
もちろん,掲示板のシステム側で対応すべきだとは思しますが.

翻訳したのが掲載されています.
この喫茶XRAY でどなかたに教えていただいたサイトで翻訳できることは
私も確認しました.
ならば,と思ったのですが... 分からないですね.
コードページを誤認識するわけですが...

ところで,発言の内容は「Delphi の将来」ということですが,
ハッキリ言って,こういう話題には興味ありません.ハイ.

http://madia.world.coocan.jp/cgi-bin/DelphiBBS/wwwlng.cgi?print+201708/17080007.txt

http://madia.world.coocan.jp/cgi-bin/DelphiBBS/wwwlng.cgi?print+201708/17080004.txt


[11327] Re:QandAの文字化け返信 削除
2017/8/16 (水) 15:23:10 Mr.XRAY
> ところで,発言の内容は「Delphi の将来」ということですが,
> ハッキリ言って,こういう話題には興味ありません.ハイ.


ワハハハッ.
igy さん,なんということを...  ハハハッ.
当人は何か,どうしてか分かりませんが,
踏ん切りはついていないけど何か言いたいんでしょうね.

目的のアプリが開発できるなら,何でもいいんじゃないかと思うのですが,
一年以上たってもふんぎりがつかないのね.


[11328] Re2:QandAの文字化け返信 削除
2017/8/16 (水) 15:37:16 igy
▼ Mr.XRAYさん
> > ところで,発言の内容は「Delphi の将来」ということですが,
> > ハッキリ言って,こういう話題には興味ありません.ハイ.
>
> ワハハハッ.
> igy さん,なんということを...  ハハハッ.
> 当人は何か,どうしてか分かりませんが,
> 踏ん切りはついていないけど何か言いたいんでしょうね.


最初は、まじめに返信しようと思ったのですが、
ふと、質問者は
・業務でDelphi使ってる人なのかな?
・あの掲示板で、どんな質問してるんだろう?
とか思ったら、アレだったので、つい、あんな書き込み(ツッコミ)をしてしまいました。


[11329] Re3:QandAの文字化け返信 削除
2017/8/16 (水) 16:43:06 Mr.XRAY
▼ igyさん

> とか思ったら、アレだったので、つい、あんな書き込み(ツッコミ)をしてしまいました。

でも,あれですね.Delphi の良さは理解しているみたいです.


[11330] 義務なんてないのよ返信 削除
2017/8/16 (水) 22:21:26 Mr.XRAY
> でも,あれですね.Delphi の良さは理解しているみたいです.

この方は,IE / FireFox では文字化けすると書いていました.
しかしですね.IE, FireFox を使っている人はいるんです.
そして,そういう方も Q ans A の掲示板に書き込みしているだろう.
でも文字化けしない.
という発想が必要ですね.

>は、Unicode版Delphiでは使えないものも多くなっており、メンテナンス
>がなされないまま放置されているケースが目立つように感じます。


それはしかたないでしょう.
ウェブページの記事,コード類も同じです.
これは Delphi に限りません.
更新する義務は作者には多分ないでしょう.

私だってそうだと思います.
メールで変な問い合わせがきたり,コンポやサンプルのバグの
報告を頂いても,レスする権利はあっても義務なんかないんです.ハイ.

Delphi Forum だって,Q and A だって,Delphi ML だって,
個人の好意で運営されていることも忘れないで欲しいですね.


[11331] 翻訳こんにゃく返信 削除
2017/8/17 (木) 10:40:56 おかぽん
▼ Mr.XRAYさん
> この方は,IE / FireFox では文字化けすると書いていました.
恥ずかしながら、この文字化けを翻訳するよい方法を知りません。

例えば、文字化け解決支援(http://ltside.com/enc/)で、翻訳後の文字を入力すると
latin-1 (ISO-8859-1) → UTF-8 なのかな?
・・・とは、思ったのですが、文字化けをコピペしてもHarryさんのように
きれいに翻訳できません。

Chromium と IE11 でも、微妙に結果が変わるので、ブラウザによって、
一部の文字を変換しているせいと思うのですが、
どうやって翻訳しているんでしょうか?

よいブラウザとか文字化け対策の組合せあれば、教えていただきたいのです。

まさか・・・Harryさん(及び、この掲示板の皆さん)は、エスパーいえ、
翻訳こんにゃくをお持ちなのでしょうか?(混乱

# 最近、子どものTV視聴のおかげで、ようやく新声優陣(もう10年前?)の声に
# 慣れてきたことに気がついたドラえもん。

[11332] Re:翻訳こんにゃく返信 削除
2017/8/17 (木) 13:08:05 Harry
こんにちは。翻訳家のHarryです。

▼ おかぽんさん
> どうやって翻訳しているんでしょうか?

すべては努力です!!

私は翻訳こんにゃくも持っておりませんし、ESP能力もわずかしかありません。
なので、バイナリエディタを見ながら 1byte、また1byteと心を込めて、
夜なべで翻訳をしております。

…というのはウソです。
あちらに投稿したソースですべてご理解いただけるかと思います。


> よいブラウザとか文字化け対策の組合せあれば、教えていただきたいのです。

本文字化けの根本的な原因が見当がつきませんので、分からないですぅ。

[11337] Re2:翻訳こんにゃく返信 削除
2017/8/18 (金) 08:35:36 おかぽん
▼ Harryさん
> すべては努力です!!
ガーン・・・・ポロリ(目から鱗が落ちる音)

> あちらに投稿したソースですべてご理解いただけるかと思います。
すばらしいです!
私、なければ作るの精神、すっかり忘れてしまったようです
(忘却したいことはいっぱいあるのに、忘れちゃいかんことを忘れる今日この頃)

で、さっそくコピペして・・・動かすと・・・ <少しは理解する努力しなさい(^^;)
・・・URLOpenBlockingStreamで、失敗する・・・。

googleさんにお尋ねしたところ、英語は読めませんので、はっきりわかりませんが
proxy環境では失敗するとか、しないとか。
# テスト中の環境は、proxy環境です

以前作ったダウンロードツールから、機能拝借したらできるかな。
という状況です。

曜日とか「書込者ID」から化けて、その人の投稿分だけ化けるなんて、すごい不思議。
名前部分に謎の制御文字とか入ってるんだろか。

[11338] Re3:翻訳こんにゃく返信 削除
2017/8/18 (金) 09:44:28 おかぽん
09_HTTP サーバからデータを取得 - ダウンロード
http://mrxray.on.coocan.jp/Delphi/plSamples/770_WinInetTest.htm#09

こちらのサンプルにある方法を使って読み取り(ダウンロード)したらできました。

MemoryStreamに読み込んで、AnsiString で読んで、Harryさんメソッド通して
FileStreamで書き込んでおしまい。


[11339] Re4:翻訳こんにゃく返信 削除
2017/8/18 (金) 09:54:01 Mr.XRAY
▼ おかぽんさん

> MemoryStreamに読み込んで、AnsiString で読んで、Harryさんメソッド通して
> FileStreamで書き込んでおしまい。


ゲッ !
おかぽんさん仕事早いですね.
私は Harry さんのコードコピペして保存しただけです.
おかぽんさんのおかげで手間が省けそうです.サンクスです.


[11343] Re5:翻訳こんにゃく返信 削除
2017/8/18 (金) 11:58:07 おかぽん
▼ Mr.XRAYさん
> おかぽんさん仕事早いですね.
仕事じゃないから早い・・・おっと、これ以上は言えない

せっかくなので Harryさん の UTF8MojibakeFix を某掲示板仕様に修正したので置いていきます。

各投稿間には、必ず横線(<HR> タグ)があるので、このタグがあれば、そこから
127バイト先読みして、文字化け対策が必要か確認しています(関数内関数doFixCheck)。
確認は、投稿日時が "(" + 曜日 であるため、"(" に続けて修正文字 $C2 があれば、
次の横線までの範囲を修正区間として処理。

これにより、正常な投稿の文字化けを回避します。

function UTF8MojibakeFix2(const aStr: AnsiString): AnsiString;
  //UTF8修正が必要であるか
  //127文字分先読みして、文字化けしているか調査する
  function doFixCheck(aPStr: PAnsiChar; aMax: Integer): Boolean;
  const
    MAX_SEARCH_SIZE        = 127;
  var
    fInnK, idx, nMax: Integer;
  begin
    Result := False;
    fInnK := 0;
    if aMax < MAX_SEARCH_SIZE then nMax := aMax else nMax := MAX_SEARCH_SIZE;
    for idx := 0 to nMax do begin
      case aPStr^ of
        #$28: fInnK := 1;        //(
        #$C2: begin
          if fInnK = 1 then begin
            Result := True;
            Break;
          end;
        end
        else fInnK := 0;
      end;
      Inc(aPStr);
    end;
  end;
var
  fInnState,
  fAddChar: Boolean;
  fHR, mlen, idx: Integer;
begin
  Result:='';

  fInnState := False;
  fHR := 0;

  mLen := Length(aStr);
  idx := 1;

  while idx <= mLen do begin
    fAddChar := True;
    case aStr[idx] of
      #$3C: fHR := 1;                                        //<
      #$3E: begin                                         //>
        if fHR = 3 then begin
          fHR := 0;
          fInnState := doFixCheck(@aStr[idx], mLen - idx);
        end;
      end;
      #$48: if fHR = 1 then Inc(fHR) else fHR := 0;        //H
      #$52: if fHR = 2 then Inc(fHR) else fHR := 0;        //R
      #$C2: if fInnState then fAddChar := False;
      #$C3: begin
        if fInnState then begin
          Inc(idx);
          //次の文字を変換
          Result := Result + AnsiChar(Byte(aStr[idx])+$40);
          fAddChar := False;
        end;
      end;
    else fHR := 0;
    end;

    if fAddChar then begin
      if aStr[idx] = #$0 then Result := Result + #$20
      else Result := Result + aStr[idx];
    end;
    Inc(idx);
  end;
end;

以下4質問が、華麗に翻訳されました。
http://madia.world.coocan.jp/cgi-bin/DelphiBBS/wwwlng.cgi?print+201609/16090004.txt
http://madia.world.coocan.jp/cgi-bin/DelphiBBS/wwwlng.cgi?print+201611/16110016.txt
http://madia.world.coocan.jp/cgi-bin/DelphiBBS/wwwlng.cgi?print+201704/17040002.txt
http://madia.world.coocan.jp/cgi-bin/DelphiBBS/wwwlng.cgi?print+201708/17080004.txt


[11344] Re6:翻訳こんにゃく返信 削除
2017/8/18 (金) 15:55:08 Mr.XRAY
> せっかくなので Harryさん の UTF8MojibakeFix を某掲示板仕様に修正したので置いていきます。

私は取り合えば Harry さんのコードをコピペしたのを
TEmbeddedWB に置き換えてみました.TWebBrowser だとスクリブエラーが発生したので.

http://mrxray.on.coocan.jp/Delphi/zip/plCnvCodepage4QA.zip

動作確認は Windows 7 U64(SP1) + Delphi XE(UP1) Pro です.


[11345] Re7:翻訳こんにゃく返信 削除
2017/8/18 (金) 16:14:01 Mr.XRAY
> http://mrxray.on.coocan.jp/Delphi/zip/plCnvCodepage4QA.zip

おかぽんさんのコードも追加させていただきました.
ボタンが 1 つ増えています.

もし応答なしの状態になったら,閉じて再度起動してみてください.


2017/08/23 追記
NavigateError 時の処理を Cancel することにより,
応答なしの状態を抑えるようにしてみました.



[11354] Re8:翻訳こんにゃく返信 削除
2017/8/23 (水) 15:03:44 Mr.XRAY
> もし応答なしの状態になったら,閉じて再度起動してみてください.

NavigateError 時の処理を Cancel することにより,
応答なしの状態を抑えるようにしてみました.


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82