{"id":20691524,"url":"https://github.com/yutotnh/wave-dash-unify","last_synced_at":"2026-04-24T13:06:28.742Z","repository":{"id":167967586,"uuid":"637772692","full_name":"yutotnh/wave-dash-unify","owner":"yutotnh","description":"EUC-JPのファイルを保存した時に、全角チルダ(0x8F 0xA2 0xB7)を波ダッシュ(0xA1 0xC1)に変更する","archived":false,"fork":false,"pushed_at":"2026-04-13T05:55:48.000Z","size":1390,"stargazers_count":1,"open_issues_count":8,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-13T07:27:24.843Z","etag":null,"topics":["euc-jp","typescript","vscode-extension"],"latest_commit_sha":null,"homepage":"https://marketplace.visualstudio.com/items?itemName=yutotnh.wave-dash-unify","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yutotnh.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-05-08T11:30:12.000Z","updated_at":"2026-04-13T05:55:53.000Z","dependencies_parsed_at":"2024-03-07T16:27:24.587Z","dependency_job_id":"d58d314a-fd56-47f7-8ab7-8cd19d1d592f","html_url":"https://github.com/yutotnh/wave-dash-unify","commit_stats":null,"previous_names":["yutotnh/wave-dash-unify"],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/yutotnh/wave-dash-unify","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yutotnh%2Fwave-dash-unify","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yutotnh%2Fwave-dash-unify/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yutotnh%2Fwave-dash-unify/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yutotnh%2Fwave-dash-unify/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yutotnh","download_url":"https://codeload.github.com/yutotnh/wave-dash-unify/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yutotnh%2Fwave-dash-unify/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32224421,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T10:26:35.452Z","status":"ssl_error","status_checked_at":"2026-04-24T10:25:27.643Z","response_time":64,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["euc-jp","typescript","vscode-extension"],"created_at":"2024-11-16T23:17:06.330Z","updated_at":"2026-04-24T13:06:28.727Z","avatar_url":"https://github.com/yutotnh.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Wave Dash Unify\n\n[![Test \u0026 Publish](https://github.com/yutotnh/wave-dash-unify/actions/workflows/test-and-publish.yml/badge.svg?branch=main)](https://github.com/yutotnh/wave-dash-unify/actions/workflows/test-and-publish.yml)\n[![Lint](https://github.com/yutotnh/wave-dash-unify/actions/workflows/lint.yml/badge.svg?branch=main)](https://github.com/yutotnh/wave-dash-unify/actions/workflows/lint.yml)\n[![Format](https://github.com/yutotnh/wave-dash-unify/actions/workflows/format.yml/badge.svg?branch=main)](https://github.com/yutotnh/wave-dash-unify/actions/workflows/format.yml)\n\n[![Dev Containers](https://github.com/yutotnh/wave-dash-unify/actions/workflows/devcontainer.yml/badge.svg?branch=main)](https://github.com/yutotnh/wave-dash-unify/actions/workflows/devcontainer.yml)\n[![CodeQL](https://github.com/yutotnh/wave-dash-unify/actions/workflows/codeql.yml/badge.svg?branch=main)](https://github.com/yutotnh/wave-dash-unify/actions/workflows/codeql.yml)\n\nEUC-JP のファイルを保存した時に、以下の文字の置き換えを行います。\n\n| 置き換え対象文字                | 置き換え後                 |\n| ------------------------------- | -------------------------- |\n| 全角チルダ (～: 0x8F 0xA2 0xB7) | 波ダッシュ (〜: 0xA1 0xC1) |\n| 全角NO (№: 0x8F 0xA2 0xF1)      | 全角NO (№: 0xAD 0xE2)      |\n\n## Features\n\nVS Code ではファイルの文字コードに EUC-JP を指定した状態で`～`という文字を保存した際に一般的に使われる波ダッシュ(0xA1 0xC1)ではなく、全角チルダ(0x8F 0xA2 0xB7)で保存されます\n\nそのため、VS Code で`～`を含まれる EUC-JP のファイルを編集した際に他のツールでファイルを閲覧すると文字化けするといった問題が発生します\n\nこの拡張機能をインストールすると、EUC-JP のファイルを保存した時に全角チルダ(0x8F 0xA2 0xB7)を波ダッシュ(0xA1 0xC1)に変更し、前述の文字化け問題を回避します\n\nその他置き換え対象文字についても、同様の処理を行います\n\nおおまかな処理は以下の通りです\n\n```mermaid\nsequenceDiagram\n    autonumber\n\n    actor User\n    participant vscode as VS Code\n    participant extension as Wave Dash Unify\n    participant file as ファイル(EUC-JP)\n\n    User -\u003e\u003e vscode: ファイル保存処理を依頼\n    vscode -\u003e\u003e file: EUC-JPでファイルを保存\n    vscode -\u003e\u003e extension: ファイルを保存したことを通知\n    extension -\u003e\u003e file: ファイルの中身を要求する\n    file -\u003e\u003e extension: ファイルの中身を返す\n    extension -\u003e\u003e extension: ファイルの中の置き換え対象文字を置き換える\n    extension -\u003e\u003e file: 変換した中身を保存する\n```\n\n## Extension Settings\n\n- `waveDashUnify.enableConvert`: 文字の変換をします\n- `waveDashUnify.fullwidthTildeToWaveDash`: 全角チルダ (0x8F 0xA2 0xB7) を波ダッシュ (0xA1 0xC1) に変換します\n- `waveDashUnify.numeroSignToNumeroSign`: 全角NO (0x8F 0xA2 0xF1) を全角NO (0xAD 0xE2) に変換します\n- `waveDashUnify.statusBarFormat`: ステータス バーのフォーマット\n\n## Known Issues\n\n### [Ctrl+S を長押しすると、ファイルの上書きに失敗する](https://github.com/yutotnh/wave-dash-unify/issues/13)\n\n`Ctrl+S`を長押しするなどして、短時間に連続して`～`の含まれる EUC-JP のファイルを保存した場合に、下記画像のようなエラーが発生します\n\n![overwrite error](./doc/overwrite-error.png)\n\n## Release Notes\n\nSee changelog\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyutotnh%2Fwave-dash-unify","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyutotnh%2Fwave-dash-unify","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyutotnh%2Fwave-dash-unify/lists"}