Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

UTF8 Converter #108

Closed
nhlpl opened this issue Feb 25, 2015 · 25 comments
Closed

UTF8 Converter #108

nhlpl opened this issue Feb 25, 2015 · 25 comments

Comments

@nhlpl
Copy link

nhlpl commented Feb 25, 2015

UTF8 Database Converter have to be used before using NodeBB Import Tool.

At this moment nodebb-plugin-import breaks non-latin charakcters.
ą > ±
ć > æ
ę > ê
ł > ³
ń > ñ
ś > ¶
ż > ¿

SQL System Variables for IP.Board 2.3.x

collation_connection: latin1_swedish_ci
collation_database: latin1_swedish_ci
collation_server: latin1_swedish_ci

character_set_client: latin1
character_set_connection: latin1
character_set_database: latin1

character_set_results: latin1
character_set_server: latin1
character_set_system: utf8

@akhoury
Copy link
Owner

akhoury commented Feb 25, 2015

can you suggest a module that does that? I'll gladly add it.

@nhlpl
Copy link
Author

nhlpl commented Feb 25, 2015

Do you think about npm modules like this one?
https://www.npmjs.com/package/gulp-convert-encoding

@akhoury
Copy link
Owner

akhoury commented Feb 25, 2015

more like https://github.com/ashtuchkin/iconv-lite which is used by gulp-convert-encoding, thanks for the lead

@nhlpl
Copy link
Author

nhlpl commented Feb 26, 2015

Do you need any additional support to make it work? I'll be happy to test it out when it gets ready.

@akhoury
Copy link
Owner

akhoury commented Feb 26, 2015

I would love to have to a sample DB dump to test with my self.

@sohrabafard
Copy link

Hello,
about "vbulletin" to "nodebb" migration using nodebb import plugin, the contents were transferred as follows:

لط�ا �قط کتب و جزواتی را قرار دهید که نویسنده ی آن هستید و یا از نویسنده ی آن اجازه دارید.

correct form is :

لطفا فقط کتب و جزواتی را قرار دهید که نویسنده ی آن هستید و یا از نویسنده ی آن اجازه دارید.

Who can help me?

@akhoury
Copy link
Owner

akhoury commented Dec 11, 2015

let me see what I can do. Im gonna close this one here akhoury/nodebb-plugin-import-vbulletin#4, as they are duplicates

@sohrabafard
Copy link

thanks,
When I copy any corrupted text in notepad++ and then convert it from ansi to utf8 ,
text will be ok...

@akhoury
Copy link
Owner

akhoury commented Dec 11, 2015

@sohrabafard can you provide me a with database dump to test with? feel free to send it privately to email bentael@gmail.com, and to obfuscate emails, password and other data unless you want to trust me with it :)

@sohrabafard
Copy link

I will send two tables vb_thread and vb_post that have bunch of utf8 data ( about 1.5K records )
with foratmail@gmail.com.
.
each Table:
Type: InnoDB
Collation: utf8_general_ci

Thanks a lot!

@sohrabafard
Copy link

an idea :
make a plugin that iterate on nodebb Posts, Category, ... and change encoding of text(String) from ANSI to "UTF-8" :

convert fron Ansi to Utf-8 dosen't change any English text.

https://community.nodebb.org/topic/7213/iterate-on-nodebb-posts

@sohrabafard
Copy link

let me know, if you get my mail!

@sohrabafard
Copy link

After install encoding packages:

    npm install encoding & npm install iconv

As you suggest:

encoding.convert(str,  'windows-1252','utf8');

work fine to recover text, so I entered below JavaSacript code in pre-post input of nodebb-plugin-import:
content = encoding.convert(content, 'windows-1252','utf8');
get this error :

13/12 03:26 [8180] - error: ReferenceError: encoding is not defined
    at eval (eval at <anonymous> (/home/nodeBB/forum/node_modules/nodebb-plugin-import/server/controller.js:339:18), <anonymous>:3:11)
    at Object.Controller.convert (/home/nodeBB/forum/node_modules/nodebb-plugin-import/server/controller.js:368:34)
    at /home/nodeBB/forum/node_modules/nodebb-plugin-import/server/controller.js:1266:87
    at /home/nodeBB/forum/node_modules/nodebb-plugin-import/node_modules/async/lib/async.js:567:21
    at /home/nodeBB/forum/node_modules/nodebb-plugin-import/node_modules/async/lib/async.js:246:17
    at /home/nodeBB/forum/node_modules/nodebb-plugin-import/node_modules/async/lib/async.js:122:13
    at _each (/home/nodeBB/forum/node_modules/nodebb-plugin-import/node_modules/async/lib/async.js:46:13)
    at async.each (/home/nodeBB/forum/node_modules/nodebb-plugin-import/node_modules/async/lib/async.js:121:9)
    at _asyncMap (/home/nodeBB/forum/node_modules/nodebb-plugin-import/node_modules/async/lib/async.js:245:13)
    at Object.map (/home/nodeBB/forum/node_modules/nodebb-plugin-import/node_modules/async/lib/async.js:216:23)
ReferenceError: encoding is not defined
    at eval (eval at <anonymous> (/home/nodeBB/forum/node_modules/nodebb-plugin-import/server/controller.js:339:18), <anonymous>:3:11)
    at Object.Controller.convert (/home/nodeBB/forum/node_modules/nodebb-plugin-import/server/controller.js:368:34)
    at /home/nodeBB/forum/node_modules/nodebb-plugin-import/server/controller.js:1266:87
    at /home/nodeBB/forum/node_modules/nodebb-plugin-import/node_modules/async/lib/async.js:567:21
    at /home/nodeBB/forum/node_modules/nodebb-plugin-import/node_modules/async/lib/async.js:246:17
    at /home/nodeBB/forum/node_modules/nodebb-plugin-import/node_modules/async/lib/async.js:122:13
    at _each (/home/nodeBB/forum/node_modules/nodebb-plugin-import/node_modules/async/lib/async.js:46:13)
    at async.each (/home/nodeBB/forum/node_modules/nodebb-plugin-import/node_modules/async/lib/async.js:121:9)
    at _asyncMap (/home/nodeBB/forum/node_modules/nodebb-plugin-import/node_modules/async/lib/async.js:245:13)
    at Object.map (/home/nodeBB/forum/node_modules/nodebb-plugin-import/node_modules/async/lib/async.js:216:23)

I checked server/controller.js you define "encoding" I don't know why we have this error!

@akhoury
Copy link
Owner

akhoury commented Dec 13, 2015

i know why, hang on will fix it in an hour.

akhoury added a commit that referenced this issue Dec 13, 2015
@akhoury
Copy link
Owner

akhoury commented Dec 13, 2015

actually just be fixed now

@sohrabafard
Copy link

in Topic Title:

    13/12 05:00 [9592] - error: TypeError: undefined is not a function
        at /home/nodeBB/forum/node_modules/nodebb-plugin-import/node_modules/bbcode-to-markdown/bbcode-to-markdown.js:24:31
        at Object.Controller.convert (/home/nodeBB/forum/node_modules/nodebb-plugin-import/server/controller.js:368:24)
        at Data.eachGroup.async (/home/nodeBB/forum/node_modules/nodebb-plugin-import/server/controller.js:1225:25)
        at replenish (/home/nodeBB/forum/node_modules/nodebb-plugin-import/node_modules/async/lib/async.js:191:21)
        at /home/nodeBB/forum/node_modules/nodebb-plugin-import/node_modules/async/lib/async.js:203:33
        at nxt (/home/nodeBB/forum/node_modules/nodebb-plugin-import/server/controller.js:1220:12)
        at Data.eachGroup.async (/home/nodeBB/forum/node_modules/nodebb-plugin-import/server/controller.js:1229:12)
        at replenish (/home/nodeBB/forum/node_modules/nodebb-plugin-import/node_modules/async/lib/async.js:191:21)
        at /home/nodeBB/forum/node_modules/nodebb-plugin-import/node_modules/async/lib/async.js:203:33
        at nxt (/home/nodeBB/forum/node_modules/nodebb-plugin-import/server/controller.js:1220:12)
    TypeError: undefined is not a function
        at /home/nodeBB/forum/node_modules/nodebb-plugin-import/node_modules/bbcode-to-markdown/bbcode-to-markdown.js:24:31
        at Object.Controller.convert (/home/nodeBB/forum/node_modules/nodebb-plugin-import/server/controller.js:368:24)
        at Data.eachGroup.async (/home/nodeBB/forum/node_modules/nodebb-plugin-import/server/controller.js:1225:25)
        at replenish (/home/nodeBB/forum/node_modules/nodebb-plugin-import/node_modules/async/lib/async.js:191:21)
        at /home/nodeBB/forum/node_modules/nodebb-plugin-import/node_modules/async/lib/async.js:203:33
        at nxt (/home/nodeBB/forum/node_modules/nodebb-plugin-import/server/controller.js:1220:12)
        at Data.eachGroup.async (/home/nodeBB/forum/node_modules/nodebb-plugin-import/server/controller.js:1229:12)
        at replenish (/home/nodeBB/forum/node_modules/nodebb-plugin-import/node_modules/async/lib/async.js:191:21)
        at /home/nodeBB/forum/node_modules/nodebb-plugin-import/node_modules/async/lib/async.js:203:33
        at nxt (/home/nodeBB/forum/node_modules/nodebb-plugin-import/server/controller.js:1220:12)

@sohrabafard
Copy link

and this error:

    13/12 05:03 [9720] - error: TypeError: undefined is not a function
        at Object.module.exports.utils.slugify (/home/nodeBB/forum/public/src/utils.js:81:14)
        at /home/nodeBB/forum/node_modules/nodebb-plugin-import/server/controller.js:1310:88
        at /home/nodeBB/forum/src/database/mongo/hash.js:15:4
        at handleCallback (/home/nodeBB/forum/node_modules/mongodb/lib/utils.js:96:12)
        at /home/nodeBB/forum/node_modules/mongodb/lib/collection.js:974:5
        at /home/nodeBB/forum/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:778:13
        at Callbacks.emit (/home/nodeBB/forum/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:95:3)
        at null.messageHandler (/home/nodeBB/forum/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:249:23)
        at Socket.<anonymous> (/home/nodeBB/forum/node_modules/mongodb/node_modules/mongodb-core/lib/connection/connection.js:297:20)
        at Socket.emit (events.js:107:17)
    TypeError: undefined is not a function
        at Object.module.exports.utils.slugify (/home/nodeBB/forum/public/src/utils.js:81:14)
        at /home/nodeBB/forum/node_modules/nodebb-plugin-import/server/controller.js:1310:88
        at /home/nodeBB/forum/src/database/mongo/hash.js:15:4
        at handleCallback (/home/nodeBB/forum/node_modules/mongodb/lib/utils.js:96:12)
        at /home/nodeBB/forum/node_modules/mongodb/lib/collection.js:974:5
        at /home/nodeBB/forum/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:778:13
        at Callbacks.emit (/home/nodeBB/forum/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:95:3)
        at null.messageHandler (/home/nodeBB/forum/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:249:23)
        at Socket.<anonymous> (/home/nodeBB/forum/node_modules/mongodb/node_modules/mongodb-core/lib/connection/connection.js:297:20)
        at Socket.emit (events.js:107:17)

@sohrabafard
Copy link

so we have just two error:

first on:

 Topics titles and content

that is:

13/12 05:03 [9720] - error: TypeError: undefined is not a function
    at Object.module.exports.utils.slugify (/home/nodeBB/forum/public/src/utils.js:81:14)
    at /home/nodeBB/forum/node_modules/nodebb-plugin-import/server/controller.js:1310:88
...

second on:

BB-Code to MarkDown

that is:

    13/12 05:00 [9592] - error: TypeError: undefined is not a function
    at /home/nodeBB/forum/node_modules/nodebb-plugin-import/node_modules/bbcode-to-markdown/bbcode-to-markdown.js:24:31
    at Object.Controller.convert (/home/nodeBB/forum/node_modules/nodebb-plugin-import/server/controller.js:368:24)
...

and user,Category name and description,Private Message, user signature have no problem.

@sohrabafard
Copy link

secound problem solved buy running this command:

npm install bbcode-to-markdown

So I recommend you to add bbcode-to-markdown to dependecy.

@akhoury
Copy link
Owner

akhoury commented Dec 13, 2015

it is added as dependency. https://github.com/akhoury/nodebb-plugin-import/blob/master/package.json#L44

something is wrong with your installation.

@sohrabafard
Copy link

i install plugin using npm,
what about first error?

@akhoury
Copy link
Owner

akhoury commented Dec 13, 2015

can you show me your parseBefore function syntax ? you're not passing a string through.

@sohrabafard
Copy link

 content = encoding.convert(content,"windows-1252","utf8");

this works for category and post.

@akhoury
Copy link
Owner

akhoury commented Dec 13, 2015

console.log(typeof encoding.convert("test","windows-1252","utf8")); // prints object

use this instead, basically just add toString() to it.

 content = encoding.convert(content,"windows-1252","utf8").toString();

@sohrabafard
Copy link

Yes, the problem was solved!

please close issue!

Thanks a lotو

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants