おそらくTeamsに限った現象ではなさげ。
まえがき
Teamsのチャット内容とかを他の管理台帳とかに手軽にコピーしたいと思い、色々調べ始めてみたところ、いきなりつまづいた。
チャットログに貼られたテキストをコピーすると・・・
のテキスト「ほげ」をコピーして、以前作ったツールを使ってクリップボードの保存形式を調べると・・・
ここまでは、まともです。
で、HTML Formatを選んで保存します。すると、、、(下記に抜粋)
文字化けしてますね。。
原因は謎だが対処法はあるようで・・・
参考サイトの1と2に、対処法が記載されています。
"Html Format"
を指定して、GetData
すると大丈夫なようです。
"HTML Format"
では文字化けします。謎すぎ・・・。
サンプルソースコード
using System;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
class SampleForm : Form
{
SampleForm()
{
ClientSize = new Size(300, 200);
var btn = new Button(){
Text = "Copy and save clipborad data as HTML Format.",
Dock = DockStyle.Fill,
};
btn.Click += (s,e)=>{CopyAndSaveHtmlFromClipboard();};
Controls.Add(btn);
}
void CopyAndSaveHtmlFromClipboard()
{
var ms = Clipboard.GetData("Html Format") as MemoryStream;
if ( ms != null ) {
using ( var fs = new FileStream("clipboard_tmpout_html.txt", FileMode.Create) ) {
ms.WriteTo(fs);
}
Console.WriteLine("saved.");
}
else {
Console.WriteLine("no data.");
}
}
[STAThread]
static void Main(string[] args)
{
Application.Run(new SampleForm());
}
}
結果
上記のサンプルコードで保存したファイルを開くと、文字化けが解消することを確認できました。