deno.land / std@0.224.0 / media_types / get_charset.ts

get_charset.ts
View Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.// This module is browser compatible.
import { parseMediaType } from "./parse_media_type.ts";import type { DBEntry } from "./_util.ts";import { db, type KeyOfDb } from "./_db.ts";
/** * Given a media type or header value, identify the encoding charset. If the * charset cannot be determined, the function returns `undefined`. * * @example * ```ts * import { getCharset } from "https://deno.land/std@$STD_VERSION/media_types/get_charset.ts"; * * getCharset("text/plain"); // "UTF-8" * getCharset("application/foo"); // undefined * getCharset("application/news-checkgroups"); // "US-ASCII" * getCharset("application/news-checkgroups; charset=UTF-8"); // "UTF-8" * ``` */export function getCharset(type: string): string | undefined { try { const [mediaType, params] = parseMediaType(type); if (params && params["charset"]) { return params["charset"]; } const entry = db[mediaType as KeyOfDb] as DBEntry; if (entry && entry.charset) { return entry.charset; } if (mediaType.startsWith("text/")) { return "UTF-8"; } } catch { // just swallow errors, returning undefined } return undefined;}
std

Version Info

Tagged at
6 months ago