@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/04/18/000-windows-text-encoding-line-endings/#article>
    schema:about <https://comcomponent.com/knowledge/character-encoding/>, <https://comcomponent.com/knowledge/line-ending/> ;
    schema:mentions <https://comcomponent.com/knowledge/unicode/>, <https://comcomponent.com/knowledge/utf-8/>, <https://comcomponent.com/knowledge/utf-16le/>, <https://comcomponent.com/knowledge/cp932/>, <https://comcomponent.com/knowledge/bom/>, <https://comcomponent.com/knowledge/active-code-page/>, <https://comcomponent.com/knowledge/mojibake/>, <https://comcomponent.com/knowledge/reencoding-data-loss/>, <https://comcomponent.com/knowledge/gitattributes/>, <https://comcomponent.com/knowledge/powershell-text-encoding/> .

<https://comcomponent.com/knowledge/character-encoding/> a skos:Concept ;
    skos:prefLabel "文字コード(キャラクターエンコーディング)"@ja ;
    skos:definition "文字列をバイト列として保存・伝送するための対応規則。Unicodeのような文字集合をどうバイト列にするかを定めるUTF-8やUTF-16、Windows独自のCP932のようなレガシーコードページなどが含まれる。"@ja ;
    skos:altLabel "encoding" ;
    skos:altLabel "文字符号化方式"@ja ;
    ks:uses <https://comcomponent.com/knowledge/utf-8/> ;
    ks:uses <https://comcomponent.com/knowledge/utf-16le/> ;
    ks:uses <https://comcomponent.com/knowledge/cp932/> ;
    ks:uses <https://comcomponent.com/knowledge/active-code-page/> ;
    ks:mayCause <https://comcomponent.com/knowledge/mojibake/> .

<https://comcomponent.com/knowledge/line-ending/> a skos:Concept ;
    skos:prefLabel "改行コード"@ja ;
    skos:definition "行の区切りに使うバイト列。WindowsではCRLF(0D 0A)が伝統的で、Linux/macOSではLF(0A)が一般的。文字コードとは別の軸で決まり、同じ文字コードのファイルでも改行だけがCRLFとLFの間でずれることがある。"@ja ;
    skos:altLabel "CRLF" ;
    skos:altLabel "LF" ;
    skos:altLabel "CR" ;
    skos:altLabel "line ending" .

<https://comcomponent.com/knowledge/unicode/> a skos:Concept ;
    skos:prefLabel "Unicode"@ja ;
    skos:definition "文字を番号(符号点)で表すための文字集合の枠組み。UTF-8やUTF-16はこれをバイト列にする文字コードであり、Unicode自体とは別の概念である。"@ja .

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

<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 ;
    ks:implements <https://comcomponent.com/knowledge/unicode/> .

<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/active-code-page/> a skos:Concept ;
    skos:prefLabel "アクティブコードページ(ANSI/ACP)"@ja ;
    skos:definition "Windowsの「ANSI」という表記が多くの場合指す、そのマシンに設定されている既定のコードページ。日本語環境では通常CP932になる。"@ja ;
    skos:altLabel "ANSI" ;
    skos:altLabel "ACP" .

<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 ;
    ks:uses <https://comcomponent.com/knowledge/unicode/> .

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

<https://comcomponent.com/knowledge/powershell-text-encoding/> a skos:Concept ;
    skos:prefLabel "PowerShellの文字コード既定値"@ja ;
    skos:definition "PowerShellのコマンドレットが読み書きに使う既定の文字コード。PowerShell 6以降はutf8NoBOMに統一されている一方、Windows PowerShell 5.1はコマンドレットごとに既定がそろっていない。"@ja ;
    skos:altLabel "$OutputEncoding" ;
    skos:altLabel "-Encoding" ;
    skos:altLabel "utf8NoBOM" .

<https://comcomponent.com/knowledge/gitattributes/> a skos:Concept ;
    skos:prefLabel ".gitattributes"@ja ;
    skos:definition "リポジトリ単位でテキストファイルの改行変換(CRLF/LF)などの取り扱いを固定するGitの設定ファイル。"@ja ;
    skos:altLabel "gitattributes" .

<https://comcomponent.com/knowledge/reencoding-data-loss/> a skos:Concept ;
    skos:prefLabel "誤読内容の再保存によるデータ破損"@ja ;
    skos:definition "文字化けして見える内容を正しい文字コードで開き直さずそのまま保存し、元のバイト列を失うこと。表示崩れとは異なり、あとから正しい文字コードを知っても元に戻らない。"@ja .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/character-encoding/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/unicode/> ;
    schema:description "UTF-8やUTF-16のような現代の文字コードでは、Unicodeは文字を番号で表す枠組みであり、これらの文字コードがこれをバイト列に変換する(CP932のようなUnicode以前のレガシーコードページはUnicodeを介さない)"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/globalization/encoding/unicode-standard> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/character-encoding/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/utf-8/> ;
    schema:description "現代のWindows実務では新規テキストの第一候補としてUTF-8を使う"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/powershell/scripting/dev-cross-plat/vscode/understanding-file-encoding?view=powershell-7.6> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/character-encoding/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/utf-16le/> ;
    schema:description "Windows APIやPowerShellの一部の出力は既定でUTF-16LEを使う"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_character_encoding?view=powershell-7.6> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/character-encoding/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/cp932/> ;
    schema:description "日本語Windowsのレガシーテキストは実務ではCP932として意識したほうが安全である"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/windows/win32/intl/code-page-identifiers> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/character-encoding/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/active-code-page/> ;
    schema:description "Windowsの「ANSI」という表記は多くの場合そのマシンのアクティブコードページを指す"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/windows/win32/intl/code-page-identifiers> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/character-encoding/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/bom/> ;
    schema:description "UTF-8やUTF-16のようなUnicode系の文字コードでは、仕様はBOMの有無まで決めて初めて運用ルールとして成立する(CP932のようなレガシーコードページにはBOMの概念自体がない)"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/globalization/encoding/unicode-standard> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/character-encoding/> ;
    rdf:predicate ks:mayCause ;
    rdf:object <https://comcomponent.com/knowledge/mojibake/> ;
    schema:description "書き込み時と読み込み時で前提とする文字コードが一致しないと文字化けが起きる"@ja ;
    ks:evidence <https://www.w3.org/International/articles/definitions-characters/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/utf-8/> ;
    rdf:predicate ks:implements ;
    rdf:object <https://comcomponent.com/knowledge/unicode/> ;
    schema:description "UTF-8はUnicodeの符号点を1〜4バイトの可変長バイト列にエンコードする文字コードである"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/globalization/encoding/unicode-standard> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/utf-16le/> ;
    rdf:predicate ks:implements ;
    rdf:object <https://comcomponent.com/knowledge/unicode/> ;
    schema:description "UTF-16LEはUnicodeの符号点を2バイト単位のリトルエンディアンでエンコードする文字コードである"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/globalization/encoding/unicode-standard> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/cp932/> ;
    rdf:predicate ks:incompatibleWith ;
    rdf:object <https://comcomponent.com/knowledge/utf-8/> ;
    schema:description "非ASCII文字を含む場合、同じバイト列をUTF-8として書きCP932として読む、またはその逆をすると、正しい文字列に戻らない(ASCII範囲のみのバイト列はどちらの前提で読んでも一致するため問題は表面化しない)"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/windows/win32/intl/code-page-identifiers> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/cp932/> ;
    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-page-identifiers> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/active-code-page/> ;
    rdf:predicate ks:incompatibleWith ;
    rdf:object <https://comcomponent.com/knowledge/utf-8/> ;
    schema:description "非ASCII文字を含むUTF-8のファイルをアクティブコードページの前提で読むと、文字化けが起きる"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/windows/win32/intl/code-page-identifiers> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/utf-16le/> ;
    rdf:predicate ks:incompatibleWith ;
    rdf:object <https://comcomponent.com/knowledge/active-code-page/> ;
    schema:description "UTF-16LEのログをアクティブコードページ前提のツールへ渡すと、NULバイトが混ざるなど文字化けの一種として見える"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/windows/win32/intl/code-page-identifiers> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/bom/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/unicode/> ;
    schema:description "BOMはUnicodeが定めるU+FEFFという符号点をファイル先頭に置く目印である"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/globalization/encoding/unicode-standard> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/powershell-text-encoding/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/utf-8/> ;
    schema:description "PowerShell 6以降では、すべてのテキスト出力の既定がutf8NoBOM(UTF-8 BOMなし)である(Windows PowerShell 5.1はコマンドレットごとに既定がそろっていない)"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_character_encoding?view=powershell-7.6> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/powershell-text-encoding/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/active-code-page/> ;
    schema:description "Windows PowerShell 5.1では、BOMのないファイルをGet-Contentやスクリプト読み込みでアクティブコードページとみなす(PowerShell 6以降はutf8NoBOMに統一されており該当しない)"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_character_encoding?view=powershell-7.6> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/powershell-text-encoding/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/bom/> ;
    schema:description "Windows PowerShell 5.1で、非ASCII文字を含むスクリプトファイルを実行する場合に限り、BOMがないとアクティブコードページとして読まれてスクリプトが壊れる(PowerShell 6以降はutf8NoBOMに統一されているため該当しない)"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_character_encoding?view=powershell-7.6> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/line-ending/> ;
    rdf:predicate ks:configuredBy ;
    rdf:object <https://comcomponent.com/knowledge/gitattributes/> ;
    schema:description "Gitリポジトリで管理する場合、リポジトリ単位の改行コードの扱いは.gitattributesで固定できる(Git管理下にないテキストファイルの改行コードには関与しない)"@ja ;
    ks:evidence <https://git-scm.com/docs/gitattributes> ;
    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/reencoding-data-loss/> ;
    schema:description "文字化けして見える内容に気づかずそのまま保存すると、元のバイト列が失われ表示崩れではなくデータ破損になる"@ja ;
    ks:evidence <https://www.w3.org/International/articles/definitions-characters/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .
