どうも、yujinです。
突然ですが、予期せぬエラー、皆さんも経験あるのではないでしょうか。
私も多くの時間を取られました……
今回は、私の年の瀬の時間を貪った
Webページで_(アンダーバー)が勝手に斜字変換されることへの対応
についてです。
(この程度のこと、端から気をつけておけという方はぜひコメントください!)
事の発端
私は、Streamlitを用いたデータカタログのアプリを担当していたのですが、その表示がうまくいかなくなりました。
本来なら、画像の左のようにテーブルの情報がカードとしてきれいに表示されるはずが、右のようにカードの表示が崩れてしまう状況に見舞われました。

原因解析
テーブル名に含まれている「_」が影響したものでした。アンダーバーですね。
マークダウンにおけるアンダーバーは斜体による強調の意味を持ちます。Streamlitでの表示の際のコードがst.markdownであることから、アンダーバーが強調文字として認識されたと考えられます。(アンダーバーは必ず強調文字として認識されるわけではなく、文字として認識されることもあるようです)
ただ、データベースの命名においてアンダーバーはよく使われる記号です。当然、アンダーバーが用いられる前提の対応が必要でした。反省……

対処法
HTML用の文字列のうち、該当するHTML特殊文字をコードベースに変換しておくことで、正常に表示されるようになります。
今回で言えば、以下のコードのように「_」の部分を「_」に変化することで対応が可能です!
script_HTML = "<body></body>"#HTML文
script_HTML = script_HTML.replace('_', '_')

まとめ
「このエラーどうなってんだ、全然解決できない」と思っていたら、意外と単純なところに落とし穴がある、その予兆を見逃してしまう、そんなあるあるを見事に犯してしまいました。
皆さんもお気を付けください。