@prefix schema: <https://schema.org/> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix ks: <https://comcomponent.com/vocab/> .

<https://comcomponent.com/blog/2026/03/21/000-windows-text-encoding-mojibake-linux/#article>
    schema:about <https://comcomponent.com/knowledge/mojibake/>, <https://comcomponent.com/knowledge/cp932/>, <https://comcomponent.com/knowledge/utf-8/> ;
    schema:mentions <https://comcomponent.com/knowledge/utf-16le/>, <https://comcomponent.com/knowledge/bom/>, <https://comcomponent.com/knowledge/console-code-page/>, <https://comcomponent.com/knowledge/powershell/>, <https://comcomponent.com/knowledge/windows-powershell-5-1/>, <https://comcomponent.com/knowledge/powershell-7/>, <https://comcomponent.com/knowledge/iconv/>, <https://comcomponent.com/knowledge/linux-locale/>, <https://comcomponent.com/knowledge/wsl/>, <https://comcomponent.com/knowledge/encoding-overwrite-corruption/>, <https://comcomponent.com/knowledge/encoding-as-interface/>, <https://comcomponent.com/knowledge/utf8-first-policy/> .

<https://comcomponent.com/knowledge/mojibake/> a skos:Concept ;
    skos:prefLabel "文字化け"@ja ;
    skos:definition "実際のバイト列の解釈が意図したencodingとずれ、表示や内容が壊れて見える状態。"@ja ;
    ks:verifiedBy <https://comcomponent.com/knowledge/iconv/> .

<https://comcomponent.com/knowledge/cp932/> a skos:Concept ;
    skos:prefLabel "CP932"@ja ;
    skos:definition "Windowsの日本語コードページ(コードページ番号932)。実務上はWindows版のShift_JISに近いが、他システムのShift_JIS実装と1バイトも違わない保証はない。"@ja ;
    skos:altLabel "Windows-31J" ;
    skos:altLabel "Windowsの日本語コードページ"@ja .

<https://comcomponent.com/knowledge/utf-8/> a skos:Concept ;
    skos:prefLabel "UTF-8"@ja ;
    skos:definition "Unicodeの可変長エンコーディング方式。バイト列に強い制約があるため、CP932など他のエンコーディングのバイト列は厳密デコードで失敗しやすい。"@ja .

<https://comcomponent.com/knowledge/utf-16le/> a skos:Concept ;
    skos:prefLabel "UTF-16LE"@ja ;
    skos:definition "Unicodeの符号点を2バイト単位のリトルエンディアンで表す文字コード。Windows APIやPowerShellの一部コマンドレットの既定出力に使われる。"@ja ;
    skos:altLabel "UTF-16 リトルエンディアン"@ja ;
    skos:altLabel "エディタ上のUnicode表記"@ja .

<https://comcomponent.com/knowledge/bom/> a skos:Concept ;
    skos:prefLabel "BOM(Byte Order Mark)"@ja ;
    skos:definition "ファイル先頭に置かれ、どのUnicodeエンコーディングかを示す数バイトの目印。UTF-8はEF BB BF、UTF-16 LEはFF FE、UTF-16 BEはFE FF。"@ja ;
    skos:altLabel "バイトオーダーマーク"@ja .

<https://comcomponent.com/knowledge/encoding-overwrite-corruption/> a skos:Concept ;
    skos:prefLabel "誤読内容の上書き保存によるデータ破損"@ja ;
    skos:definition "別のencodingとして誤読され崩れて見える文字列を、そのまま保存してしまい元のバイト列が失われる状態。"@ja ;
    skos:altLabel "encoding起因のデータ破損"@ja .

<https://comcomponent.com/knowledge/console-code-page/> a skos:Concept ;
    skos:prefLabel "コンソールのコードページ"@ja ;
    skos:definition "cmd.exeなどコンソールの入出力に適用されるcode page。ファイル自体のencodingとは独立したレイヤー。"@ja ;
    skos:altLabel "console code page" ;
    skos:altLabel "chcp" .

<https://comcomponent.com/knowledge/windows-powershell-5-1/> a skos:Concept ;
    skos:prefLabel "Windows PowerShell 5.1"@ja ;
    skos:definition "Windowsに標準で同梱されている、.NET Framework上に構築されたレガシー世代のPowerShell(5.1系)のランタイム。実行ファイルはpowershell.exeで、.NETアプリからはMicrosoft.PowerShell.5.1.ReferenceAssembliesを介して呼び出せる。"@ja ;
    skos:altLabel "Microsoft.PowerShell.5.1.ReferenceAssemblies" ;
    ks:uses <https://comcomponent.com/knowledge/utf-16le/> ;
    ks:uses <https://comcomponent.com/knowledge/cp932/> .

<https://comcomponent.com/knowledge/powershell-7/> a skos:Concept ;
    skos:prefLabel "PowerShell 7"@ja ;
    skos:definition "PowerShell Core系譜の最新世代で、.NET(Core以降)上に構築されたPowerShellのエディション。実行ファイルはpwsh.exeで5.1のpowershell.exeとサイドバイサイドに共存し、Out-File・Set-Content・Export-Csvなどの既定書き込みencodingはBOMなしUTF-8である。"@ja ;
    ks:uses <https://comcomponent.com/knowledge/utf-8/> .

<https://comcomponent.com/knowledge/iconv/> a skos:Concept ;
    skos:prefLabel "iconv"@ja ;
    skos:definition "指定したencoding間でテキストのバイト列を変換するLinux/Unix系のコマンドラインツール。"@ja ;
    skos:altLabel "GNU libiconv" .

<https://comcomponent.com/knowledge/powershell/> a skos:Concept ;
    skos:prefLabel "PowerShell"@ja ;
    skos:definition "オブジェクトパイプラインとエラー処理機構を持つ、Microsoftが最も堅牢で最新のWindows自動化に推奨するコマンドラインシェル兼スクリプト言語。"@ja ;
    skos:altLabel "Windows PowerShell" ;
    skos:altLabel "pwsh" ;
    skos:altLabel "PowerShell 7" .

<https://comcomponent.com/knowledge/linux-locale/> a skos:Concept ;
    skos:prefLabel "Linuxのlocale"@ja ;
    skos:definition "言語・地域・文字コードの既定をまとめたLinuxの設定。多くはUTF-8をencodingとして含む。"@ja ;
    skos:altLabel "LANG" ;
    skos:altLabel "LC_ALL" .

<https://comcomponent.com/knowledge/wsl/> a skos:Concept ;
    skos:prefLabel "WSL(Windows Subsystem for Linux)"@ja ;
    skos:definition "Windows上でLinux環境を動かす仕組み。Windows側とLinux側の文字コードの前提が1台の中で同居する。"@ja ;
    skos:altLabel "Windows Subsystem for Linux" ;
    ks:uses <https://comcomponent.com/knowledge/linux-locale/> .

<https://comcomponent.com/knowledge/encoding-as-interface/> a skos:Concept ;
    skos:prefLabel "encodingをI/O契約として明文化する運用"@ja ;
    skos:definition "CSVやログなどの受け渡しにおいて、encoding・BOM有無・改行コードを内容と同様に仕様として明記しておく運用方針。"@ja ;
    skos:altLabel "encoding as interface" ;
    ks:recommendedFor <https://comcomponent.com/knowledge/mojibake/> .

<https://comcomponent.com/knowledge/utf8-first-policy/> a skos:Concept ;
    skos:prefLabel "新規ファイルをUTF-8第一候補にする運用方針"@ja ;
    skos:definition "新規に作成するテキストファイルのencodingとして、まずUTF-8を第一候補として選ぶ運用方針。"@ja ;
    skos:altLabel "UTF-8ファースト"@ja ;
    ks:recommendedFor <https://comcomponent.com/knowledge/mojibake/> .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/cp932/> ;
    rdf:predicate ks:mayCause ;
    rdf:object <https://comcomponent.com/knowledge/mojibake/> ;
    schema:description "CP932で保存したバイト列をUTF-8の前提で読むと、それらしい漢字やカタカナが並ぶ形の文字化けになる"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/windows/win32/intl/code-pages> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/utf-8/> ;
    rdf:predicate ks:mayCause ;
    rdf:object <https://comcomponent.com/knowledge/mojibake/> ;
    schema:description "UTF-8で保存したバイト列をCP932の前提で読むと、置換文字だらけの文字化けになる"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/windows/win32/intl/code-pages> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/utf-16le/> ;
    rdf:predicate ks:mayCause ;
    rdf:object <https://comcomponent.com/knowledge/mojibake/> ;
    schema:description "PowerShellの一部の書き込み経路が出すUTF-16LEを、UTF-8の1バイトストリームを想定するLinux側のツールに渡すと、NUL byteが混ざったバイナリのような文字化けになる"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_character_encoding> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/bom/> ;
    rdf:predicate ks:mayCause ;
    rdf:object <https://comcomponent.com/knowledge/mojibake/> ;
    schema:description "UTF-8のBOMを余計な先頭バイト列として扱うツールを通すと、先頭列や先頭行だけ壊れて見える"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/windows/apps/design/globalizing/use-utf8-code-page> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/mojibake/> ;
    rdf:predicate ks:mayCause ;
    rdf:object <https://comcomponent.com/knowledge/encoding-overwrite-corruption/> ;
    schema:description "文字化けして見える内容に気づかずそのまま保存すると、元のバイト列が失われ単なる表示崩れではなくデータ破損になる"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/windows/win32/intl/unicode-in-the-windows-api> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/console-code-page/> ;
    rdf:predicate ks:mayCause ;
    rdf:object <https://comcomponent.com/knowledge/mojibake/> ;
    schema:description "ファイルの実際のencodingとコンソールの入出力code pageが食い違うと、ファイル自体は無事でも表示だけ崩れて見える"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/windows/console/console-code-pages> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/windows-powershell-5-1/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/utf-16le/> ;
    schema:description "Windows PowerShell 5.1のOut-Fileやリダイレクト(>、>>)は既定でUTF-16LE(BOM付き)を書き込む"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_character_encoding> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/windows-powershell-5-1/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/cp932/> ;
    schema:description "Windows PowerShell 5.1のSet-Content/Add-Contentは、新規または空ファイルに対し既定でANSI(日本語環境ではCP932)を書き込む"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_character_encoding> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/powershell-7/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/utf-8/> ;
    schema:description "PowerShell 7以降はOut-File・Set-Content等の書き込み経路の既定がUTF-8 no BOMに統一されている"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_character_encoding> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/iconv/> ;
    rdf:predicate ks:mitigates ;
    rdf:object <https://comcomponent.com/knowledge/mojibake/> ;
    schema:description "元のバイト列が残っていれば、正しいencodingを指定してiconvで読み直しUTF-8などへ変換することで文字化けを解消できる"@ja ;
    ks:evidence <https://www.gnu.org/software/libiconv/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/powershell/> ;
    rdf:predicate ks:mitigates ;
    rdf:object <https://comcomponent.com/knowledge/mojibake/> ;
    schema:description "PowerShell 6.2以降は-Encodingにcode page番号(CP932なら932)を直接指定でき、Get-ContentとSet-Contentを組み合わせてencodingを変換できる"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_character_encoding> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/mojibake/> ;
    rdf:predicate ks:verifiedBy ;
    rdf:object <https://comcomponent.com/knowledge/iconv/> ;
    schema:description "変換元のencoding指定を誤るとiconvはillegal input sequenceで処理を止めるため、指定したencodingがファイルの実体と異なることを確認する手がかりになる"@ja ;
    ks:evidence <https://www.gnu.org/software/libiconv/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/linux-locale/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/utf-8/> ;
    schema:description "多くのLinux環境では、localeがja_JP.UTF-8のようにLANGやLC_ALLでencodingまで含めて既定の文字コードを定め、UTF-8が前提になる"@ja ;
    ks:evidence <https://www.gnu.org/software/gettext/manual/html_node/Header-Entry.html> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/wsl/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/linux-locale/> ;
    schema:description "WSL上のLinux側はlocaleに従いUTF-8前提で動作するため、Windows側の文字コードの前提とぶつかりやすい"@ja ;
    ks:evidence <https://www.debian.org/doc/manuals/debian-reference/ch08.en.html> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/wsl/> ;
    rdf:predicate ks:mayCause ;
    rdf:object <https://comcomponent.com/knowledge/mojibake/> ;
    schema:description "WSLはWindows側とLinux側の文字コードの前提が1台の中に同居する環境であり、この記事が扱う文字化け事故が起きやすい"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/windows/wsl/about> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/encoding-as-interface/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/mojibake/> ;
    schema:description "CSVやログなどのencoding・BOM有無・改行コードを仕様として明文化しておくことは、文字化け事故を防ぐための本記事の推奨対応である"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/powershell/scripting/dev-cross-plat/vscode/understanding-file-encoding> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/utf8-first-policy/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/mojibake/> ;
    schema:description "新規テキストファイルのencodingとしてまずUTF-8を第一候補にすることは、Windows全体の推奨方針であり文字化け事故を減らす対応でもある"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/windows/apps/design/globalizing/use-utf8-code-page> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .
