Git Product home page Git Product logo

encoding.js's People

Contributors

dependabot[bot] avatar iku000888 avatar polygonplanet avatar spring-raining avatar tohutohu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

encoding.js's Issues

特定の文字を含んだ Unicode を SJIS に変換しようとすると文字化けする

タイトルの通りなのですが、特定の文字(制御文字)を含んだ Unicode を SJIS に変換しようとすると文字化けする様でした。当方の仕様に対する理解が浅いのかもしれませんが、一応レポートしておきます。

以下が、問題のあった文字になります。

[
  '\u0000',
  '\u0001',
  '\u0002',
  '\u0003',
  '\u0004',
  '\u0005',
  '\u0006',
  '\u0007',
  '\u0008',
  '\u000B',
  '\u000C',
  '\u000E',
  '\u000F',
  '\u0010',
  '\u0011',
  '\u0012',
  '\u0013',
  '\u0014',
  '\u0015',
  '\u0016',
  '\u0017',
  '\u0018',
  '\u0019',
  '\u001A',
  '\u001B',
  '\u001C',
  '\u001D',
  '\u001E',
  '\u001F',
  '\u007F',
]

例えば、この様な事をすると文字化けします。

// あ[\u0008]いう
const string = '\u3042\u0008\u3044\u3046';
new Uint8Array(EncodingJapanese.convert(Buffer.from(string), 'SJIS'));

ASCIIに判定されたものを変換しようとすると例外をはくようになった問題

1.0.10から1.0.11への変更にかけて、ASCIIと判定されたコードを変換しようとすると例外をはくようになりました。
これは下記のように非対応のエンコードをスルーしていたものを例外をはくように変更した影響で、対応している文字コードの範囲内ではスルー処理しても問題のないASCIIがはじかれることによって起こります。

1.0.10 line: 184

  if (hasOwnProperty.call(Encoding, func)) {
    return Encoding[func](data);
  }
}
return data;

1.0.11 line: 118

  if (!hasOwnProperty.call(EncodingDetect, method)) {
    throw new Error('Undefined encoding: ' + e);
  } else if (EncodingDetect[method](data)) {
    return encoding;
  }

AUTOでdetectしてASCIIだったらてきとうにSJISだよとしてconvertしたりすれば回避可能ですが、不便なのでできればスルーあるいはメソッド定義など対応お願いします。

[Browserify] Cannot find module in v1.0.28

I got dependency errors in the latest version of this package 1.0.28
Could you please check it ? @polygonplanet

Node.js Environment

  • node: 6.9.1
  • npm: 3.10.8
  • browserify: ^13.0.0

Errors

Error: Cannot find module './util'
Error: Cannot find module './encoding-table'
Error: Cannot find module './config' 
Error: Cannot find module './encoding-detect' 
Error: Cannot find module './utf8-to-jis-table'
Error: Cannot find module './utf8-to-jisx0212-table'
Error: Cannot find module './jis-to-utf8-table'
Error: Cannot find module './jisx0212-to-utf8-table'
Error: Cannot find module './encoding-convert' 
Error: Cannot find module './kana-case-table'

esm support?

In these days, I think there is some demands to use encoding in the browser directory using native import.
If you think this is meaningful, I will help to make changes.

Remove invalid characters after decoding

In the case of an invalid array input when converting to Unicode, currently encoding.js output the invalid bytes as normal question marks (char code 63), so I can't remove invalid characters from the result without accidentally remove valid question marks. Can you ask an option to remove invalid characters after decoding, or at least use a special character instead of question mark as a placeholder for invalid result characters?

Sample code:

const targetBytes = encoding.convert(
  '??',
  {
    to: 'SJIS',
    type: 'array',
  }
);
const result = encoding.convert(targetBytes.slice(0, 2), {
  to: 'UNICODE',
  from: 'SJIS',
  type: 'string',
});

Result: ??. Both characters are ? even though the last one should be an invalid character.

Vue3に対応してますか?

Vue3を使ったプロジェクトで使わせてもらっています。
UNICODEからSJISへの変換がうまくいかず、なぜかASCIIに変換されてしまっています。
もしかしたらVue3に対応していないのかと思い、issue投げさせてもらいました。

コード例

// composables/useFileControl.js
import Encoding from "encoding-japanese";

let unicodeArray = Encoding.stringToCode(csvData);
console.log(Encoding.detect(unicodeArray)); // UNICODE
let sjisArray = Encoding.convert(unicodeArray, "SJIS", "UNICODE");
console.log(Encoding.detect(sjisArray)); // ASCII

error when using detect function

const EncodingJapanese = require('encoding-japanese');

console.log(EncodingJapanese.detect('chà')); // output: UNICODE
console.log(EncodingJapanese.detect('chào')); // output: SJIS

It seems like a bug, it's not SJIS

Could not convert from SJIS to UTF-8

When I used below codes, data was not converted correctly. Output was not displayed as Japanese, but strange characters.
コンバートのため下記のソースコードを使ったが、出力のデータは日本語で表示せずに変な文字で表示ました。
「観é�³ Kå­�,ç�·,ç��å·� Yå­�,女,」

var file = fileUploader.files[0];
var reader = new FileReader();
reader.readAsBinaryString(file);
reader.onload = function() {
     console.log(originalText);
     var inputArray = str2Array(originalText); //sjis
     var outputArray = Encoding.convert(inputArray, 'UTF8', 'SJIS');
     var result = Encoding.codeToString(outputArray);
     console.log(result);
}

function str2Array(str) {
     var array = [],i,il=str.length;
     for(i=0;i<il;i++) array.push(str.charCodeAt(i));
     return array;
}

Bug: string.charCodeAt is not a function

I am getting difficulties while using const unicodeArray = Encoding.stringToCode(characters);

My environment:

Node version: v18.8.0
System: macOS Monterey

Error:

.../node_modules/encoding-japanese/src/util.js:154
    code[i] = string.charCodeAt(i);
                     ^

TypeError: string.charCodeAt is not a function

characters variable is UTF16 (for example):

肄㮚쨀艒ࠃ隫⢖즯際ᄹ丿௧僚痐ݮᴚﶈ෠뚳Ꝥ%00肸ꬖ겶Œ쉔⑊渾�ʜ꾐齏ⷄ霯ᛙ淨䫼拙䱇脋喳躰썗⭲蕒愝㾻ȉ�䴖跔㇆폝⻬ᕴ�퍎⍴偬릎殿婸φ叙疂ȏ덩셯幆下wᾷꭴ尕㢛匈夁ʁ步℘ꑻ޹瘼碞遗潪▅픰ꢘ銪㪺╷襞掣䤬믳贀

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.