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

get_charset.ts
نووسراو ببینە
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
// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.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
11 months ago