.Net8 文字列に日本語が含まれているかチェックする
LLM Doghouseで"[]"に反応してStableDuffusionが起動してしまうバグが発生しました。それを修正するためにコマンドかどうかを判断するのに日本語が含まれているのかをチェックすることにしました。.Net Core系は少しひと工夫必要だったので掲載します。
素では動かないためSystem.Text.Encoding.CodePagesのNugetが必要です。

引数に指定した文字列に日本語が含まれていなければtrue、日本語が含まれていればfalseを返します。
public static bool CheckHwchr(string strPrompt) //半角で構成されているかチェック
{
EncodingProvider provider = System.Text.CodePagesEncodingProvider.Instance;
var encoding = provider.GetEncoding("shift-jis");
int intLen = encoding.GetByteCount(strPrompt);
return intLen == strPrompt.Length;
}