2015-12-11 2 views
0

Любой человек с мохолическим манго (https://metacpan.org/pod/Mango) знание может сказать мне, как вы вставляете символы utf-8 в mongodb. Или, может быть, это недостающая особенность манго?perl mojolicious mango driver: utf-8 символов не написаны правильно в mongodb

Спасибо.

+2

Не могли бы вы [изменить] ваш вопрос и добавить немного более подробно? В его нынешнем виде вопрос очень расплывчатый и более подходит для открытого дискуссионного форума, чем для формата q & a, который мы здесь делаем в SO. Вы пытались вставить эти символы? Как ты это сделал? Пожалуйста, предоставьте [mcve], чтобы мы могли поиграть, чтобы помочь вам. – simbabque

ответ

1

У Mango нет проблем с utf8-строками. Я использую их все время. Ваша проблема должна лежать в другом месте.

В следующем примере Mojo::Base неявно импортирует прагму utf8, которая сообщает perl обрабатывать все строки в исходном коде как utf8. Кроме того, перед тем, как печатать текст на консоли, я говорю perl использовать слой ввода-вывода utf8 на stdout, иначе он не будет печатать правильно. Обратите внимание: вместо этого вы можете использовать слой ввода-вывода :raw, и он будет работать так же хорошо.

use Mojo::Base -strict; 
use Mango; 

sub mango { state $m = Mango->new } 
sub coll { mango->db('test')->collection('utf8') } 

my $text = "utf8 is not so hard "; 

my $oid = coll->insert({ text => $text }); 
my $doc = coll->find_one($oid); 
binmode(STDOUT, ":utf8"); 
say $doc->{text}; 
+0

Да, проблема была в другом месте, извините, ошибочное предположение с моей стороны ... У меня была проблема с двоичной ошибкой utf-8. Спасибо за ответ. – Michael2000

Смежные вопросы