1 | 'use strict'
|
2 | var iconv
|
3 | var iconvLite
|
4 |
|
5 | function getIconvAdapter () {
|
6 | var Iconv = require('iconv').Iconv
|
7 | return {
|
8 | decode: function (bufferOrString, encoding) {
|
9 | var iconv = new Iconv(encoding, 'utf8')
|
10 | return iconv.convert(bufferOrString)
|
11 | },
|
12 | encode: function (bufferOrString, encoding) {
|
13 | var iconv = new Iconv('utf8', encoding)
|
14 | return iconv.convert(bufferOrString)
|
15 | }
|
16 | }
|
17 | }
|
18 |
|
19 | module.exports = function getIconv (useIconv) {
|
20 | if (useIconv) {
|
21 | if (!iconv) {
|
22 | iconv = getIconvAdapter()
|
23 | }
|
24 | return iconv
|
25 | }
|
26 | if (!iconvLite) {
|
27 | iconvLite = require('iconv-lite')
|
28 | }
|
29 | return iconvLite
|
30 | }
|